Rumah> Java> javaTutorial> teks badan

Membina Perkhidmatan Mikro Boleh Skala dengan Java Spring Boot: Amalan dan Teknik Terbaik bahagian -1

PHPz
Lepaskan: 2024-08-17 18:51:32
asal
673 orang telah melayarinya

Seni Bina Monolith

  • Jika kita membangunkan semua fungsi dalam projek tunggal maka ia dipanggil sebagai aplikasi berasaskan seni bina Monolith.

  • Kami akan membungkus aplikasi kami sebagai balang/perang untuk digunakan ke dalam pelayan.

  • Memandangkan aplikasi monolit mengandungi semua fungsi, ia akan menjadi balang lemak/perang.

Kelebihan
1) Mudah dibangunkan dan diurus.
2) Semuanya boleh didapati di satu tempat.
3) Konfigurasi diperlukan sekali sahaja.

Kelebihan-Kekurangan
1) Sukar diselenggara
2) Satu titik Kegagalan
3) Jika kami melakukan sebarang perubahan, projek yang lengkap akan digunakan semula dan diuji.
4) Pembangun mungkin tidak mengetahui keseluruhan modul jadi lebih sukar untuk mula membetulkan isu.
5) jika sesetengah modul mendapat banyak beban daripada yang kita perlukan untuk mencipta berbilang contoh aplikasi lengkap supaya mengambil banyak ruang kerana setiap modul digandingkan rapat antara satu sama lain.

Building Scalable Microservices with Java Spring Boot: Best Practices and Techniques part -1

Untuk mengatasi masalah Monolitik, seni bina Microservices masuk ke pasaran

Seni bina perkhidmatan mikro

  • Perkhidmatan mikro bukan bahasa pengaturcaraan atau rangka kerja atau API. Microservices ialah corak reka bentuk seni bina.

  • Perkhidmatan mikro mencadangkan untuk membangunkan fungsi aplikasi dengan gandingan longgar.

  • Dalam seni bina Microservices kami tidak membangunkan semua fungsi dalam satu projek. Kami akan membahagikan fungsi projek kepada beberapa API REST.

  • Microservices tidak berkaitan dengan java sahaja. Mana-mana projek khusus bahasa pengaturcaraan boleh menggunakan Microservices Architecture.

Perkhidmatan mikro ialah pendekatan yang menggunakan kami membangunkan perkhidmatan kecil yang kecil, setiap perkhidmatan dijalankan pada bekas/proses/pelayannya sendiri, perkhidmatan itu harus ringan dan boleh digunakan secara bebas. Ini membolehkan pembangunan, penggunaan dan skalabiliti yang lebih pantas.

Seperti yang anda boleh lihat bahawa modul pekerja, modul pelanggan, modul alamat dan modul kursus aplikasi monolit kini ditukar kepada perkhidmatan kecil kecil jadi di sini ia adalah seperti perkhidmatan pekerja, perkhidmatan pelanggan, perkhidmatan alamat dan perkhidmatan kursus. dan dalam aplikasi monolit terdapat penggunaan pangkalan data tunggal tetapi dalam aplikasi perkhidmatan mikro setiap perkhidmatan mempunyai pangkalan data sendiri. dan mereka kini bergantung antara satu sama lain. dan setiap perkhidmatan adalah komunikasi antara satu sama lain membuang panggilan yang lain.

Building Scalable Microservices with Java Spring Boot: Best Practices and Techniques part -1

Kelebihan

  • Kebebasan Teknologi (Kami boleh membangunkan API bahagian belakang dengan pelbagai teknologi seperti python, Go dll.)
  • Kemerdekaan Pangkalan Data.

  • Setiap perkhidmatan adalah bebas antara satu sama lain (Loosely Coupling) jadi kami boleh menggunakan setiap perkhidmatan secara bebas.

  • jika melakukan apa-apa perubahan dalam mana-mana perkhidmatan tidak perlu menggunakan semua perkhidmatan, hanya satu perkhidmatan menggunakan tunggal juga.

  • Dev bekerja pada satu perkhidmatan tidak memerlukan pengetahuan keseluruhan aplikasi.

  • Kegagalan satu perkhidmatan mikro tidak memberi kesan kepada keseluruhan aplikasi, meningkatkan daya tahan keseluruhan.

  • Pangkalan kod yang lebih kecil dan pengasingan kebimbangan menjadikan penyelenggaraan dan penyahpepijatan lebih terurus.

  • Disebabkan sifatnya yang lebih kecil dan bebas, perkhidmatan mikro individu boleh diskalakan secara bebas berdasarkan permintaan, tanpa perlu menskalakan keseluruhan aplikasi.

  • Setiap servis boleh diuji secara berbeza.

Keburukan

  • jika kita ingin melakukan perubahan dalam satu konfigurasi perkhidmatan daripada yang kita perlukan untuk melakukan perubahan pada setiap konfigurasi perkhidmatan contohnya terdapat sifat sepunya yang wujud dalam setiap fail application.properties dalam semua projek saya.
company.name=tier3Hub
Salin selepas log masuk

jadi jika kita ingin menukar nama syarikat daripada dalam semua perkhidmatan kita perlu menukar nama.

  • Menguji aplikasi berasaskan perkhidmatan mikro boleh menjadi lebih kompleks kerana saling bergantung dan interaksi antara perkhidmatan.

  • setiap perkhidmatan mengendalikan beberapa jumlah permintaan tertentu selepas itu jika kami menghantar lebih banyak permintaan daripada perkhidmatan yang terputus, jadi kami memerlukan beberapa contoh perkhidmatan itu dan untuk mengarahkan permintaan dalam contoh perkhidmatan yang berbeza, kami memerlukan pengimbang beban yang mengimbangi permintaan yang datang daripada pelanggan dan laluan dalam contoh yang berbeza. tetapi menulis pengimbang beban di Jawa adalah sukar.

为什么选择 Java 来实现微服务

Java提供了Spring-Boot的框架来开发Rest API,Spring-Boot提供了很多功能,比如自动配置、嵌入式服务器,如果我们要开发服务,那么需要在服务器和spring上部署sech服务-Boot 提供tomcat服务器,因此每个服务都运行在tomcat的不同端口上。例如员工服务在端口 8080 上运行,课程服务在端口 8081 上运行,每个服务都有自己的服务器。

Building Scalable Microservices with Java Spring Boot: Best Practices and Techniques part -1

在 spring-Boot 的帮助下,提供了快速开发、更少配置、生产就绪应用程序和状态器项目的功能

Spring 框架下有一个名为 Spring Cloud 的项目,它提供了现成的支持微服务,Spring Cloud 提供了一些通用的工具和技术来快速开发通用的微服务模式。

Spring Cloud 专注于为典型用例提供良好的开箱即用体验,并提供可扩展性机制以覆盖其他用例

  • 分布式/版本化配置
  • 服务注册和发现
  • 路由
  • 服务间呼叫
  • 负载均衡
  • 断路器
  • 分布式消息传递
  • 短暂的微服务(任务)
  • 消费者驱动和生产者驱动的合约测试。

微服务架构

我们没有固定的微服务架构,开发人员根据自己的项目需求定制微服务架构,大多数项目都会在微服务架构中使用以下组件。

1)服务注册中心(Eureka Server)

2) 服务(REST API)

3)服务间通信(FeginClient)

4) API 网关

5) 管理服务器

6) 拉链

结论

Java 中的微服务改变了我们软件开发的方式,将灵活性、可扩展性和弹性提升到了一个新的水平。 Java 丰富的生态系统与 Spring Boot、Micronaut 等框架相结合,使其成为构建能够满足现代应用程序需求的微服务的绝佳选择。

随着我们探索这种架构,微服务比传统单体应用程序更受欢迎的原因就很清楚了。它们提供模块化和独立性,允许团队单独开发、部署和扩展服务。在云原生功能日益成为标准的世界中,这一点尤其有价值。然而,这一过程也暴露了一些挑战,例如确保数据一致性、管理服务间通信以及维护跨服务的强大安全性。

及时了解工具和实践的最新进展对于使用微服务的 Java 开发人员至关重要。环境在不断发展,那些适应的人将最有能力充分利用这种架构的潜力。 Java 微服务的未来看起来充满希望,框架和工具不断改进,并得到了越来越多渴望分享知识和经验的开发人员社区的支持。

在 Java 中采用微服务意味着为创建更具弹性、可扩展性和可维护性的应用程序打开了大门。通过遵循最佳实践并致力于持续学习,开发人员可以释放软件开发的新可能性,从而带来更加创新和高效的解决方案。

Atas ialah kandungan terperinci Membina Perkhidmatan Mikro Boleh Skala dengan Java Spring Boot: Amalan dan Teknik Terbaik bahagian -1. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:dev.to
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!