분산되고 안전한 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 애플리케이션 생성:
@SpringBootApplication @EnableConfigServer public class ConfigServerApplication { public static void main(String[] args) { SpringApplication.run(ConfigServerApplication.class, args); } }
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는 다운그레이드 기능입니다.
- 보안
분산 시스템에서는 보안 문제가 매우 중요합니다. Spring Cloud는 보안 관리를 지원하기 위해 보안을 제공합니다.
서비스 공급자 및 서비스 소비자 애플리케이션의 pom.xml에 추가:
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-security</artifactId> </dependency>
서비스 공급자 및 서비스 소비자 애플리케이션의 application.yml에서 구성:
security: basic: enabled: true spring: security: user: name: user password: password
여기서 이름과 비밀번호는 각각 사용자의 이름과 비밀번호입니다. 실제 애플리케이션에서는 사용자 인증 및 권한 관리를 위해 보다 안전한 방법을 사용해야 한다는 점에 유의해야 합니다.
FlightController의 클래스 수준에서 @PreAuthorize 주석을 추가합니다.
@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); } } }
그 중 @PreAuthorize 주석은 FlightController에서 보안 확인을 수행하는 데 사용됩니다. 실제 애플리케이션에서는 각 방법별로 서로 다른 보안 검증을 수행할 수 있습니다.
이런 방식으로 우리는 분산되고 안전한 Spring Cloud 마이크로서비스 비행 시스템 구축을 완료했습니다. 이 기사의 사례를 통해 Spring Cloud가 마이크로서비스 구축에 도움이 되는 풍부한 구성 요소를 제공한다는 것을 알 수 있습니다. 동시에 서비스 등록 및 검색, 서비스 간 통신, 로드 밸런싱, 구성 관리, 회로 차단기, 보안 및 기타 문제 등 마이크로서비스 아키텍처로 인해 발생하는 몇 가지 문제에도 주의를 기울여야 합니다. 실제 애플리케이션에서는 특정 시나리오를 기반으로 기술을 선택하고 구성해야 합니다.
위 내용은 분산되고 안전한 Spring Cloud 마이크로서비스 비행 시스템 구축의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











Windows 11 운영 체제에서 보안 센터는 사용자가 시스템 보안 상태를 모니터링하고 악성 코드로부터 보호하며 개인 정보를 보호하는 데 도움을 주는 중요한 기능입니다. 그러나 때로는 사용자가 특정 소프트웨어를 설치하거나 시스템 튜닝을 수행하는 경우와 같이 Security Center를 일시적으로 꺼야 할 수도 있습니다. 이 글에서는 시스템을 올바르고 안전하게 운영하기 위해 Windows 11 보안 센터를 끄는 방법을 자세히 소개합니다. 1. Windows 11 보안 센터를 끄는 방법 Windows 11에서는 보안 센터를 꺼도 작동하지 않습니다.

오늘날 디지털 사회에서 컴퓨터는 우리 삶에 없어서는 안 될 존재가 되었습니다. 가장 널리 사용되는 운영 체제 중 하나인 Windows는 전 세계적으로 널리 사용되고 있습니다. 그러나 네트워크 공격 방법이 계속 확대되면서 개인용 컴퓨터 보안을 보호하는 것이 특히 중요해졌습니다. Windows 운영 체제는 일련의 보안 기능을 제공하며, 그 중 "Windows 보안 센터"는 중요한 구성 요소 중 하나입니다. Windows 시스템에서는 "Windows 보안 센터"가 도움이 될 수 있습니다.

Java 프레임워크 디자인은 보안 요구 사항과 비즈니스 요구 사항의 균형을 유지하여 보안을 가능하게 합니다. 즉, 주요 비즈니스 요구 사항을 식별하고 관련 보안 요구 사항의 우선 순위를 지정합니다. 유연한 보안 전략을 개발하고, 계층적으로 위협에 대응하고, 정기적으로 조정하세요. 아키텍처 유연성을 고려하고 비즈니스 발전을 지원하며 보안 기능을 추상화합니다. 효율성과 가용성의 우선순위를 정하고 보안 조치를 최적화하며 가시성을 향상시킵니다.

PHP 마이크로프레임워크에서 Slim과 Phalcon의 보안 비교에서 Phalcon에는 CSRF 및 XSS 보호, 양식 유효성 검사 등과 같은 보안 기능이 내장되어 있는 반면 Slim에는 기본 보안 기능이 부족하고 수동 구현이 필요합니다. 보안 조치. 보안이 중요한 애플리케이션의 경우 Phalcon은 보다 포괄적인 보호 기능을 제공하며 더 나은 선택입니다.

Struts2 애플리케이션을 보호하려면 다음 보안 구성을 사용할 수 있습니다. 사용하지 않는 기능 비활성화 콘텐츠 유형 확인 활성화 입력 유효성 검사 보안 토큰 활성화 CSRF 공격 방지 RBAC를 사용하여 역할 기반 액세스 제한

생성 AI의 급속한 발전으로 인해 개인 정보 보호 및 보안에 전례 없는 문제가 발생하여 규제 개입에 대한 긴급한 요청이 촉발되었습니다. 지난 주, 저는 워싱턴 D.C.에서 몇몇 국회의원 및 그 직원들과 함께 AI가 보안과 관련된 영향에 대해 논의할 기회를 가졌습니다. 오늘날의 생성적 AI는 기초 연구, 잠재 잠재력 및 학문적 활용을 갖춘 1980년대 후반의 인터넷을 생각나게 하지만 아직 대중에게 공개될 준비가 되어 있지 않습니다. 이번에는 마이너 리그 벤처 캐피털과 트위터 에코 챔버에서 영감을 받은 자유로운 벤더 야망이 AI의 "멋진 신세계"를 빠르게 발전시키고 있습니다. "공용" 기본 모델은 결함이 있고 소비자 및 상업적 용도로 적합하지 않습니다. 만약 존재한다면 공격 표면으로 인해 체처럼 누출되는 보안 구조가 중요합니다.

C++에서 기계 학습 알고리즘을 구현할 때 데이터 개인 정보 보호, 모델 변조, 입력 유효성 검사를 포함한 보안 고려 사항이 중요합니다. 모범 사례에는 보안 라이브러리 채택, 권한 최소화, 샌드박스 사용 및 지속적인 모니터링이 포함됩니다. 실제 사례에서는 Botan 라이브러리를 사용하여 CNN 모델을 암호화 및 해독하여 안전한 교육 및 예측을 보장하는 방법을 보여줍니다.

SHIB 코인은 더 이상 투자자들에게 낯설지 않습니다. 시장이 발전함에 따라 SHIB의 현재 시가총액은 12위를 기록하며 수많은 투자를 유치하고 있는 것을 볼 수 있습니다. .투자자는 투자에 참여합니다. 과거 시장에서는 빈번한 거래 및 지갑 보안 사고가 있었고 많은 투자자들이 SHIB 코인을 보관하는 데 어떤 지갑이 더 안전한지 궁금해했습니다. 시장 데이터 분석에 따르면 상대적으로 안전한 지갑은 주로 OKXWeb3Wallet, imToken 및 MetaMask 지갑이며, 다음으로 편집자가 이에 대해 자세히 설명하겠습니다. SHIB 코인은 어느 지갑이 더 안전한가요? 현재 SHIB 코인은 OKXWe에 상장되어 있습니다.
