分散型で安全な Spring Cloud マイクロサービス フライト システムを構築する
クラウド コンピューティングの発展とエンタープライズ ビジネスの継続的な拡大に伴い、マイクロサービス アーキテクチャは非常に人気のあるシステム アーキテクチャになりました。その中で、現在最もよく使用されているマイクロサービス フレームワークは Spring Boot と Spring Cloud です。 Spring Cloud は、サービスの登録と検出、ルーティング、負荷分散、構成管理、サーキット ブレーカーなど、マイクロサービスの開発と管理をサポートする豊富なコンポーネントを提供します。
この記事では、Spring Cloud の強力な機能を実証するケースとして、分散型で安全な Spring Cloud マイクロサービス フライング システムを構築します。
- サービスの登録と検出
まず、サービスを登録して検出する必要があります。 Spring Cloud は、サービスの登録と検出を実現するのに役立つ Eureka を提供します。 Eureka Server を通じてサービスの登録と検出を完了します。
Eureka Server アプリケーションの作成:
@SpringBootApplication @EnableEurekaServer public class EurekaServerApplication { public static void main(String[] args) { SpringApplication.run(EurekaServerApplication.class, args); } }
application.properties での設定:
server.port=8761 eureka.client.register-with-eureka=false eureka.client.fetch-registry=false
サービス プロバイダー アプリケーションとサービス コンシューマー アプリケーションでは、それを Eureka Server に登録する必要があります。
サービス プロバイダーの application.properties で構成:
spring.application.name=flight-service-provider server.port=8080 eureka.client.service-url.defaultZone=http://localhost:8761/eureka/
サービス コンシューマーの application.properties で構成:
spring.application.name=flight-service-consumer server.port=8081 eureka.client.service-url.defaultZone=http://localhost:8761/eureka/
- サービス間通信
サービスプロバイダーは Spring MVC を通じて RESTful インターフェースを作成します:
@RestController @RequestMapping("/flights") public class FlightController { @GetMapping("/{flightId}") public ResponseEntity<Flight> getFlight(@PathVariable Integer flightId) { Flight flight = new Flight(flightId, "Shanghai", "Beijing", new Date()); return new ResponseEntity<>(flight, HttpStatus.OK); } }
サービスコンシューマーは Spring RestTemplate を通じてサービスを呼び出します:
@Service public class FlightService { @Autowired private RestTemplate restTemplate; @Value("${service.provider.url}") private String serviceProviderUrl; public Flight getFlight(Integer flightId) { return restTemplate.getForObject(serviceProviderUrl + "/flights/{flightId}", Flight.class, flightId); } }
その中には、service.provider があります。 URL はアプリケーション内にあります。プログラムの application.properties で設定します。
- 負荷分散
実際のアプリケーションでは、サービス プロバイダーが複数のインスタンスにデプロイされる可能性が高く、このとき、システムのパフォーマンスを向上させるために負荷分散を実行する必要があります。 . パフォーマンスと可用性。 Spring Cloud は、負荷分散をサポートするためのリボンを提供します。
サービスコンシューマの application.properties で設定します:
service.provider.url=http://flight-service-provider/ spring.cloud.loadbalancer.ribbon.enabled=true
FlightService で負荷分散された RestTemplate を使用します:
@Service public class FlightService { @Autowired @LoadBalanced private RestTemplate restTemplate; @Value("${service.provider.name}") private String serviceProviderName; public Flight getFlight(Integer flightId) { return restTemplate.getForObject("http://" + serviceProviderName + "/flights/{flightId}", Flight.class, flightId); } }
その中に、service.provider.name があります。アプリケーションはプログラムの application.properties で設定します。
- 構成管理
Spring Cloud は、アプリケーション構成を簡単に管理するための Config を提供します。アプリケーション構成を Git リポジトリに保存し、Config Server を通じて配布できます。
Create Config Server application:
@SpringBootApplication @EnableConfigServer public class ConfigServerApplication { public static void main(String[] args) { SpringApplication.run(ConfigServerApplication.class, args); } }
Configure in application.properties:
server.port=8888 spring.cloud.config.server.git.uri=https://github.com/xxx/xxx.git spring.cloud.config.server.git.search-paths=config-repo
サービス プロバイダーとサービス コンシューマーでは、Config Server アプリケーションの構成を通じて取得できます。
サービス プロバイダーの application.yml で構成します:
spring: application: name: flight-service-provider cloud: config: uri: http://localhost:8888 label: master profile: dev
サービス コンシューマーの application.yml で構成します:
spring: application: name: flight-service-consumer cloud: config: uri: http://localhost:8888 label: master profile: dev
- サーキット ブレーカー
マイクロサービス アーキテクチャでは、サービス間の依存関係が非常に複雑であるため、一部のサービスでのダウンタイムや問題がシステム全体の崩壊を引き起こす可能性があります。この状況に対処するには、サーキット ブレーカーを使用してサービスの低下に対処できます。
Spring Cloud は、サーキット ブレーカー機能をサポートする Hystrix を提供します。
サービスコンシューマのapplication.ymlに設定:
spring: application: name: flight-service-consumer cloud: config: uri: http://localhost:8888 label: master profile: dev loadbalancer: ribbon: enabled: true circuitbreaker: enabled: true resilience4j: enabled: false circuitBreaker: backend: flight-service-provider failureRateThreshold: 50
FlightControllerに@HystrixCommandアノテーションを追加:
@RestController @RequestMapping("/flights") public class FlightController { @Autowired private FlightService flightService; @GetMapping("/{flightId}") @HystrixCommand(fallbackMethod = "defaultGetFlight") public ResponseEntity<Flight> getFlight(@PathVariable Integer flightId) { Flight flight = flightService.getFlight(flightId); if (flight != null) { return new ResponseEntity<>(flight, HttpStatus.OK); } else { return new ResponseEntity<>(HttpStatus.NOT_FOUND); } } public ResponseEntity<Flight> defaultGetFlight(Integer flightId) { return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); } }
このうち、defaultGetFlightはダウングレード関数です。
- #セキュリティ
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-security</artifactId> </dependency>
security: basic: enabled: true spring: security: user: name: user password: password
@RestController @RequestMapping("/flights") @PreAuthorize("hasRole('ROLE_ADMIN')") public class FlightController { @Autowired private FlightService flightService; @GetMapping("/{flightId}") public ResponseEntity<Flight> getFlight(@PathVariable Integer flightId) { Flight flight = flightService.getFlight(flightId); if (flight != null) { return new ResponseEntity<>(flight, HttpStatus.OK); } else { return new ResponseEntity<>(HttpStatus.NOT_FOUND); } } }
以上が分散型で安全な Spring Cloud マイクロサービス フライト システムを構築するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











Windows 11 オペレーティング システムでは、セキュリティ センターは、ユーザーがシステムのセキュリティ状態を監視し、マルウェアから防御し、個人のプライバシーを保護するのに役立つ重要な機能です。ただし、特定のソフトウェアをインストールするときやシステム チューニングを実行するときなど、ユーザーがセキュリティ センターを一時的にオフにする必要がある場合があります。この記事では、システムを正しく安全に運用するために、Windows 11 セキュリティ センターをオフにする方法を詳しく紹介します。 1. Windows 11 セキュリティ センターをオフにする方法 Windows 11 では、セキュリティ センターをオフにしても、

Windows オペレーティング システムは、世界で最も多くのユーザーを抱えるオペレーティング システムの 1 つとして、常にユーザーに支持されています。ただし、Windows システムを使用する場合、ユーザーはウイルス攻撃、マルウェア、その他の脅威など、多くのセキュリティ リスクに遭遇する可能性があります。システム セキュリティを強化するために、Windows システムには多くのセキュリティ保護メカニズムが組み込まれています。その 1 つが Windows セキュリティ センターのリアルタイム保護機能です。今回はWindowsセキュリティセンターのリアルタイム保護をオフにする方法を詳しく紹介します。まず、しましょう

生成 AI の急速な発展により、プライバシーとセキュリティに関して前例のない課題が生じ、規制介入が緊急に求められています。先週、私はワシントン D.C. で一部の議員およびそのスタッフと AI のセキュリティ関連の影響について話し合う機会がありました。今日の生成 AI は、基礎研究、潜在的な可能性、学術的用途を備えた 1980 年代後半のインターネットを思い出させますが、まだ一般向けの準備は整っていません。今回は、マイナーリーグのベンチャーキャピタルによって刺激され、Twitter のエコーチェンバーに触発された、野放しのベンダーの野心が、AI の「すばらしい新世界」を急速に前進させています。 「パブリック」基本モデルには欠陥があり、消費者および商用利用には適さない; プライバシー抽象化が存在する場合、ふるいのように漏洩する; 攻撃対象領域のためセキュリティ構造は重要である

Java フレームワーク設計では、セキュリティ ニーズとビジネス ニーズのバランスをとることでセキュリティを実現し、主要なビジネス ニーズを特定し、関連するセキュリティ要件に優先順位を付けます。柔軟なセキュリティ戦略を策定し、脅威に階層的に対応し、定期的に調整します。アーキテクチャの柔軟性を考慮し、ビジネスの進化をサポートし、抽象的なセキュリティ機能を考慮します。効率と可用性を優先し、セキュリティ対策を最適化し、可視性を向上させます。

PHP セキュリティのベスト プラクティスを実装する方法 PHP は、動的でインタラクティブな Web サイトの作成に使用される最も人気のあるバックエンド Web プログラミング言語の 1 つです。ただし、PHP コードはさまざまなセキュリティ脆弱性に対して脆弱になる可能性があります。 Web アプリケーションをこれらの脅威から保護するには、セキュリティのベスト プラクティスを実装することが重要です。入力検証 入力検証は、ユーザー入力を検証し、SQL インジェクションなどの悪意のある入力を防止するための重要な最初のステップです。 PHP は、filter_var() や preg_match() などのさまざまな入力検証関数を提供します。例: $username=filter_var($_POST['username'],FILTER_SANIT

Struts2 アプリケーションを保護するには、次のセキュリティ構成を使用できます。 未使用の機能を無効にする コンテンツ タイプ チェックを有効にする 入力を検証する セキュリティ トークンを有効にする CSRF 攻撃を防ぐ RBAC を使用してロールベースのアクセスを制限する

C++ で機械学習アルゴリズムを実装する場合、データ プライバシー、モデルの改ざん、入力検証などのセキュリティを考慮することが重要です。ベスト プラクティスには、安全なライブラリの採用、権限の最小化、サンドボックスの使用、継続的な監視が含まれます。実際のケースでは、Botan ライブラリを使用して CNN モデルを暗号化および復号化し、安全なトレーニングと予測を確保する方法を示します。

SHIBコインは、投資家にとってもはや馴染みのないものではありませんが、市場の発展に伴い、SHIBの現在の市場価値は12位にランクされており、数え切れないほどの投資を集めていることがわかります。 . 投資家が投資に参加します。過去に、市場では頻繁に取引やウォレットのセキュリティに関するインシデントが発生しており、多くの投資家は、現時点でどのウォレットがSHIBコインを保管するのが安全なのか疑問に思っています。市場データの分析によると、比較的安全なウォレットは主に OKXWeb3Wallet、imToken、MetaMask ウォレットです。次に、これらについて編集者が詳しく説明します。 SHIBコインにとってより安全なウォレットはどれですか?現在、SHIBコインはOKXWeに置かれています
