SpringCloud 시리즈 0 Nacos 설치 및 구성을 시작하기

  • 배경 

    (이 또 다른 하나 개의 슬픈 이야기이다) 초기 19 완전히 켜져 자바 이후, 몇 년 작업, 갑자기 많은이 일을 내 년에 .NET 나쁜 있지만, 모양 등을 말할 수 없습니다 (몇 년 동안 버려진 느낌 상황이 좋은 깊이에 백엔드을 정말 시간 낭비를 느끼지만,이 오래 된 철에 조언을, 때로는 JS에 대해 많은 실제로 바쁜 모습, 블로그를 작성하는 자신의 과거에 봐 백업을 종료, 표면에 떠있다 ), 너무 전면에 마음을 분할하지 않는 풀 타임 전송의 프론트 엔드를 제외하고, 물론, 자신에게 추가 점수를주지 않는다

    (지나가는 : Chedan은 최고 두 빠르게 기술을 말했다 수 있습니까?)

    OKOK이 책은 당신은 내가 그 말을하지 않기로 ....이 듣고 싶지 단지 시멘 떨어져, 뒷면에 연결, 사실, 가장 최근의 사내 팀이 서비스 사업을 재구성, 시간이 건축물은 자신에 대한 책임이 아니라 필수가 아닌 너무 긴장하다 ??이 파도 어디 말도 안되는 노란색과 최고의 전문 포인트가 될 수 있도록 총알을 물린 (루 RENYI 웨이브하기로 결정, 매우 정직 마이크로 서비스 끝이 아니라,하지만 시간과 상대적으로 풍부한 무엇 요구 사항을 달성하기 위해? 그 수치)

    이 시리즈의 주요 목적은 교환 및 녹화,이 시리즈의 마지막에 당신이 (:) 만 3K 아를 지불 제공)을 두 번 지불 할 수 있습니다 희망

    모든 것은 결국, 이전에는 마이크로 서비스 경험이없는, 처음에 어렵습니다. 바로 주류로 시작하는이 흐름 파도 springcloud 그래서 시작이 단계 통합하여 구성 요소 검색 튜토리얼의 구성 요소 및 다음 단계 : 광산의 심화와 함께, 영사 + zuul + hystrix, 감시 SpringbootAdmin + HystrixDashboard을 (안 많은 구성 요소가 단계별로 집주인 잘못 잘못 단계 때문에, 그리고 마지막으로 도로의 먼지로 유지하거나 더 나은로 대체되지 않은 것을 발견,) 잘못 ... 미안 기차역 바로 시작하는거야

  • 기술 포인트

    바닥 지원과 같은 SpringCloud의 전체 사용됩니다 참여 상대적으로 더 활성 구성 요소의 사용은 (여기에 빛나는지도가 있어야한다, 우리는 자신의 뇌를 만들 수 있습니다, 나는 :) 그릴 너무 게으른 해요)

      Nacos- 서비스 등록, 검색하고 (도 유레카 동안 사용) 구성 센터

      SpringcloudGateway- 게이트웨이 

      센티넬 + 또한 회로 차단기로 알려진 dashboard- 날려 다운 그레이드는이 알리가 라인에 보초, 많은 인터넷 회사를 생산

      Zipkin- 링크 추적

      Elasticsearch + kibana- 링크 추적 데이터 지속성 및 쿼리

      SpringbootAdmin- 전체 자원 모니터링

      쿼츠 정규 업무 통합

      JWT- 사용자 인증은 간단 JWT의 자신의 세트를 달성하기 위해

      

    

    각 구성 요소 버전 목록

이름 자식 / 위 참조 사이트
SpringBoot 2.1.9    
봄 클라우드 Greenwich.SR3    
Nacos (고정 표시기) 1.1.4 https://github.com/alibaba/nacos https://nacos.io/
SpringcloudGateway 2.1.3 https://mvnrepository.com/artifact/org.springframework.cloud/spring-cloud-starter-gateway  
보초 2.1.1

https://github.com/alibaba/Sentinel

https://mvnrepository.com/artifact/com.alibaba.cloud/spring-cloud-starter-alibaba-sentinel

https://github.com/alibaba/Sentinel/wiki/%E4%BB%8B%E7%BB%8D
지프 킨 슬림 (고정 표시기)  최근  https://github.com/openzipkin/zipkin  
Elasticsearch (고정 표시기) 6.8.5  https://github.com/elastic/elasticsearch  
Elasticsearch 헤드 (노드)      
키바 (고정 표시기) 6.8.5    
석영 2.1.9  https://github.com/quartz-scheduler/quartz  
       

    

    후속 기사 나는 점차적으로 각 구성 요소의 설치 구성을 확장합니다, 삼촌 당신이 지켜봐 주시기 바랍니다

    나는 전희 다중 음 (수동 덩어리)의 절정 뒤에 충분히 할 말, 전희로의 nacos 열고 EK 설치 및 구성을 취할 것입니다

  • nacos

    Nacos 알리 오픈 소스 제품 18 년, 업데이트 매우 활동적인 부분은 springcloud - 알리바바 속하는 문서는 여기에 비교 여러 레지스트리를 비교하지 않는 문서에 nacos에게 소개를 복사하지 마십시오, 더 될 것입니다 항목이 도입 될 수있다 멋진 테이블 URL.

    열린 건조를 직접 :

    내 컴퓨터 구성에 높은 아니기 때문에, 나는 고정 표시기 원격 테스트 시스템에 설치하기로 결정했습니다, 나는 당신이 그것을 할 것을 권장합니다

    직접 셔틀 :

    RUN = 독립 모드 도커을 --env \ 
    -v /dockerdata/nacos/config/application.properties:/home/nacos/conf/application.properties \
    --name nacos -d -p 8848 : 8848 nacos / nacos - 서버 : 1.1.4
   여기 포트 8848는 선택된 구성 파일을 마운트 매핑 구성 파일은 다음과
    
# 스프링 

server.contextPath = / nacos 
server.servlet.contextPath = / nacos 
server.port = 8848 

# nacos.cmdb.dumpTaskInterval = 3600 
# nacos.cmdb.eventTaskInterval = 10 
# nacos.cmdb.labelTaskInterval = 300 
# nacos.cmdb. loadDataAtStart = 거짓 


# 메트릭 위한 메테우스 
# management.endpoints.web.exposure.include = * 

# 측정 탄성 검색 
management.metrics.export.elastic.enabled = 거짓 
#의 management.metrics.export.elastic.host= HTTP : // localhost를 : 9200 개 

# 측정 을위한 유입 
management.metrics.export.influx.enabled = 거짓 
# management.metrics.export.influx.db = springboot 
# management.metrics.export.influx.uri = HTTP : // 로컬 호스트 : 8086 
#의 management.metrics.export.influx.auto 만들-dB = 사실 
#의 management.metrics.export.influx.consistency = 하나 
# management.metrics.export.influx.compressed = 사실 

server.tomcat.accesslog.enabled = 
server.tomcat.accesslog.pattern = %의 시간 (L)의 % % % u는 t " %의 R "%의 % %의 D %의 B {사용자 - 에이전트} 내가 
#의 기본 현재 작업 디렉토리의 
server.tomcat.basedir = 

## 봄 보안 설정 
### 해제 보안 
# spring.security.enabled = 거짓 
#의 management.security = 거짓 
# security.basic.enabled = 거짓 
#의 nacos.security.ignore.urls = / * * 

nacos.security.ignore.urls = /, / * * / * .CSS, / ** / *의 .js, / ** / * .html 중에서, / ** / * .MAP, / ** / * .svg, / ** / * .PNG, / ** / * 질환자, / 콘솔-FE / 공공/ * * / V1 / 인증 / 로그인 / V1 / 콘솔 / 보건 / ** / V1 / CS / ** / V1 / NS / ** / V1 / CMDB / ** / 액츄에이터 / ** / V1 / 콘솔 / 서버 / ** 

# nacos.naming.distro.taskDispatchPeriod = 200 
# nacos.naming.distro.batchSyncKeyCount = 1000 
# nacos.naming.distro.syncRetryDelay = 5000 
# nacos.naming.data.warmup = TRUE 
# nacos.naming.expireInstance = 사실 

nacos.istio.mcp.server.enabled = 거짓 

spring.datasource.platform = mysql을 

db.num = 1 
db.url.0 = JDBC한다 : mysql : // XXXX : 3306 / nacos_config characterEncoding = UTF8 & 대해 connecttimeout = 1000 & socketTimeout = 3000 & autoReconnect = TRUE & useSSL = 거짓 & useAffectedRows = 사실 
db.user = 루트 
db.password = 123456

  로컬 테스트 설치 nacos이 있다면 사실 기본 구성 파일의 대부분은, 이전의 기본 구성과 비교 될 수는 기본적으로 동일, 나는 다시 수정

  spring.datasource.platform = mysql을이 라인은, MySQL의에서, DB 매개 변수는 MySQL의 구성의 뒷면의 시작은 데이터 스토리지를 나타내며, 공식 nacos는 기본 데이터베이스 테이블 구조를 제공하며, 주소는 다음과 같습니다 https://github.com /alibaba/nacos/blob/409838fe1f2dc53f7f5c63c660cd69b0fae1d49e/config/src/main/resources/META-INF/nacos-db.sql
 건설처럼 자신의 MySQL의 테이블에서에 관해서는 나는 다시, 첫 번째 비밀을 준비하기 위해 자연에서 MySQL의에 저장할 잘했다하려는 이유. 
 컨테이너가 설치되어 시작 후, 방화벽 포트를 구성 (기본 사용자 이름과 암호는 다음 가서 삼년 코멘트에 게시 방법 후, 나에게 자기에 대한 검색에 잘 비밀번호 생성 규칙 nacos 소스를 사용자 테이블을 변경, nacos 있습니다 변경할 방문 할 수 있습니다 .. 사람 ?? 썩은 계란 쓰레기 벌금 50 센트)
  

 

 

     

  

  • ES 및 관련 구성 요소 설치

    (이렇게하면 데이터 관련 요구 사항이없는 경우,이 섹션을 건너 뛸 수 있습니다, 마이크로과 서비스 관계의 일부가 아닙니다)

  1. Elasticsearch

    나는 명령에 직접, 구체적으로 온라인 설치 튜토리얼 풍부하게 설명하지 않는다

    

docker run  -e xpack.security.enabled=true \
                    -e xpack.security.transport.ssl.enabled=true \
                    -e ES_JAVA_OPTS="-Xms1024m -Xmx1024m" \
                    -d -p 9200:9200 -p 9300:9300 \
                    -v /dockerdata/es/config/master.yml:/usr/share/elasticsearch/config/elasticsearch.yml \
                    -v /dockerdata/es/master:/usr/share/elasticsearch/data \
                    -v /dockerdata/es/config/log4j2.properties:/usr/share/elasticsearch/config/log4j2.properties \
                    --name es-master elasticsearch:6.8.5

    还是稍加解释下:映射的是9200(9300是通讯接口),挂载了配置文件master.yml,数据目录,以及日志文件,这里给出具体配置

    master.yml

    

cluster.name: elasticsearch-cluster
node.name: master
network.bind_host: 0.0.0.0
network.publish_host: xxxx
network.host: 0.0.0.0
http.port: 9200
transport.tcp.port: 9300
http.cors.enabled: true
http.cors.allow-origin: "*"
node.master: true
node.data: true
discovery.zen.ping.unicast.hosts: ["xxxx:9300","xxxx:9301"]
http.cors.allow-headers: Authorization,X-Requested-With,Content-Length,Content-Type

  

 

 

    log4j2.properties

appender.rolling.type = RollingFile
appender.rolling.name = rolling
appender.rolling.fileName = ${sys:es.logs.base_path}${sys:file.separator}${sys:es.logs.cluster_name}.log
appender.rolling.layout.type = PatternLayout
appender.rolling.layout.pattern = [%d{ISO8601}][%-5p][%-25c{1.}] [%node_name]%marker %.-10000m%n
appender.rolling.filePattern = ${sys:es.logs.base_path}${sys:file.separator}${sys:es.logs.cluster_name}-%d{yyyy-MM-dd}-%i.log.gz
appender.rolling.policies.type = Policies
appender.rolling.policies.time.type = TimeBasedTriggeringPolicy
appender.rolling.policies.time.interval = 1
appender.rolling.policies.time.modulate = true
appender.rolling.policies.size.type = SizeBasedTriggeringPolicy
appender.rolling.policies.size.size = 256MB
appender.rolling.strategy.type = DefaultRolloverStrategy
appender.rolling.strategy.fileIndex = nomax
appender.rolling.strategy.action.type = Delete
appender.rolling.strategy.action.basepath = ${sys:es.logs.base_path}
appender.rolling.strategy.action.condition.type = IfFileName
appender.rolling.strategy.action.condition.glob = ${sys:es.logs.cluster_name}-*
appender.rolling.strategy.action.condition.nested_condition.type = IfAccumulatedFileSize
appender.rolling.strategy.action.condition.nested_condition.exceeds = 1GB

  

      ps:这里有一个坑,log4j2的日志文件如果你复制过去可能会有空格,注意检查每一行的前后空格,否则会出意外错误

 

  1.   head插件安装教程网上也很多,这里只提一个坑,不要使用docker安装head,原因是:
      官方docker镜像没有同步git主版本,所以存在一个bug:所有接口调用都报406错误,原因是es新版更新了请求机制,需要指定content-type

      ps:由于es开启了xpack,所以head访问时要在参数上添加用户名密码才可以访问,类似这样 http://xxxx:9100/?auth_user=elastic&auth_password=123456

  1.   kibana:(注意kibana要与es的版本一致)

      

docker run -l es-master:elasticsearch -p 5601:5601 -v /dockerdata/es/kibana/config/kibana.yml:/usr/share/kibana/config/kibana.yml -d kibana:6.8.5

      

      
    kibana.yml:
    
server.name: kibana
server.host: "0"
elasticsearch.url: http://xxxx:9200
xpack.monitoring.ui.container.elasticsearch.enabled: true

# Elasticsearch xpack
elasticsearch.username: "elastic"
elasticsearch.password: "123456"

  

  • 总结

   本文给出本系列涉及到的组件列表以及nacos的安装配置以及没有什么存在感的elk相关配置安装,而每一个组件的安装其实都有很多坑,不过大家可以自行查找,不属于本人原创的内容就不粘贴了

    整体来说这篇并没有什么干货(逃命中。。) 后续逐步展开各组件的使用和集成,尽快让各位老铁步入主题,覆雨翻云、高潮迭起:) 谢谢观看

    

 

    

 

추천

출처www.cnblogs.com/dzxw2371/p/12172949.html