Berbagi teknologi

Konstruksi proyek Spring Cloud

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

Pemisahan layanan:

1. Prinsip tanggung jawab tunggal: Dalam arsitektur layanan mikro, suatu layanan hanya boleh bertanggung jawab pada satu fungsi atau area bisnis. Setiap layanan harus memiliki definisi dan batasan yang jelas, dan hanya fokus pada area bisnis spesifiknya.

2. Otonomi layanan: Otonomi layanan berarti setiap layanan mikro harus memiliki tingkat otonomi yang tinggi, yaitu setiap layanan harus dapat dikembangkan secara independen, diuji secara independen, dibangun secara independen, diterapkan secara independen, dan dioperasikan secara independen.

3. Ketergantungan satu arah

Harus ada ketergantungan satu arah antar layanan mikro, dan ketergantungan melingkar serta ketergantungan dua arah sangat dilarang.

Ketergantungan melingkar: A->B->C->A

Ketergantungan dua arah: A->B,B->A

Contoh:

1. Daftar pesanan

2. Daftar produk

Layanan pemesanan: Berikan ID pesanan dan dapatkan detail pesanan

Layanan produk: Mengembalikan detail produk berdasarkan ID produk

Saat menanyakan informasi pesanan berdasarkan pesanan, dapatkan detail produk berdasarkan ID produk dalam pesanan.

menyelesaikan:

Ide implementasi: Layanan layanan pemesanan mengirimkan permintaan http ke layanan layanan produk, menggabungkan hasil yang dikembalikan dengan hasil pesanan, dan mengembalikannya ke pemanggil

Metode implementasi: Menggunakan RestTemplate yang disediakan oleh Spring

1. Tentukan Templat Istirahat

@Konfigurasi

kelas publik BeanConfig{
@Kacang

publik RestTemplate restTemplate{

kembalikan new RestTemplate();

      }

}

2. Gunakan restTemplate di pengontrol pesanan

Templat Istirahat:

Istirahat(Ulangpresentasional Snegara bagian Tranfer) mewakili transfer status sumber daya lapisan

Sumber Daya: Data di Internet, seperti gambar, video, teks, dll., semuanya merupakan sumber daya

Lapisan presentasi: bentuk representasi sumber daya (misalnya, bentuk representasi teks adalah txt, bentuk representasi gambar adalah jpg, dan beberapa sumber daya dinyatakan dalam json, xml, atau biner, dll.)

Transfer status: Ketika kita mengakses sumber daya melalui jaringan dan melakukan (menambah, mengubah, menghapus, dll.) sumber daya, itu akan menyebabkan status sumber daya berubah. Sederhananya: REST menggambarkan bentuk interaksi antara Klien dan Server di jaringan.REST itu sendiri tidak praktis, menggunakan cara mendesain RESTful API (antarmuka jaringan gaya REST)

Gaya tenang umumnya mempunyai ciri-ciri sebagai berikut:

1. Sumber Daya

2. Antarmuka terpadu: Untuk operasi pada sumber daya, seperti memperoleh, membuat, memodifikasi, dan menghapus, jendela ini sesuai dengan metode GET, POST, PUT, dan DELETE yang disediakan oleh protokol http , dari antarmuka Anda hanya dapat menemukan sumber dayanya, tetapi Anda tidak memiliki cara untuk mengetahui operasi apa yang telah dilakukan. Anda perlu mengetahui secara spesifik operasi apa yang telah dilakukan dan menilainya dari jenis metode permintaan http (misalnya: URL yang sama : GET/blog/{blogId }: Permintaan blog DELETE/blog/{blogId} Hapus blog)

Kekurangan API RESTful:

1. Metode operasinya rumit. RESTful API biasanya membedakan tindakan operasi pada sumber daya menurut GET, POST, PUT, dan DELETE.
Metode HTTP tidak dapat diamati secara langsung dan perlu diamati melalui alat seperti penangkapan paket. Akan lebih intuitif jika tindakan ditempatkan pada URL.
Ini lebih kondusif untuk pemahaman dan komunikasi tim.
2. Beberapa browser tidak terlalu ramah dalam mendukung permintaan selain GET dan POST, dan memerlukan pemrosesan tambahan.
3. Penekanan yang berlebihan pada sumber daya. Namun, kebutuhan bisnis sebenarnya mungkin lebih kompleks, dan kebutuhan tersebut tidak dapat dipenuhi hanya dengan menambah, menghapus, memodifikasi, dan mencari penggunaan paksa
RESTful API akan meningkatkan kesulitan dan biaya pengembangan.

Ada masalah dengan proyek tersebut
1. Saat menelepon dari jarak jauh, IP dan nomor port URL dikodekan secara keras (http://127.0.0.1:9090/product/). Jika Anda mengubah IP, Anda perlu mengubah kodenya.
kode
2. Bagaimana penelepon tidak bergantung pada IP penyedia layanan?
3. Penerapan multi-mesin, bagaimana cara membagi tekanan?
4. Saat melakukan panggilan jarak jauh, sangat mudah untuk menulis URL yang salah, dan kegunaannya kembali tidak tinggi. Bagaimana cara menerapkan panggilan jarak jauh dengan elegan?
5. Semua layanan dapat menghubungi antarmuka ini.