├── .DS_Store ├── .idea ├── compiler.xml ├── encodings.xml ├── libraries │ ├── Maven__antlr_antlr_2_7_7.xml │ ├── Maven__aopalliance_aopalliance_1_0.xml │ ├── Maven__ch_qos_logback_logback_classic_1_2_3.xml │ ├── Maven__ch_qos_logback_logback_core_1_2_3.xml │ ├── Maven__com_fasterxml_classmate_1_4_0.xml │ ├── Maven__com_fasterxml_jackson_core_jackson_annotations_2_9_0.xml │ ├── Maven__com_fasterxml_jackson_core_jackson_core_2_9_7.xml │ ├── Maven__com_fasterxml_jackson_core_jackson_databind_2_9_7.xml │ ├── Maven__com_fasterxml_jackson_dataformat_jackson_dataformat_xml_2_9_7.xml │ ├── Maven__com_fasterxml_jackson_datatype_jackson_datatype_jdk8_2_9_7.xml │ ├── Maven__com_fasterxml_jackson_datatype_jackson_datatype_jsr310_2_9_7.xml │ ├── Maven__com_fasterxml_jackson_module_jackson_module_jaxb_annotations_2_9_7.xml │ ├── Maven__com_fasterxml_jackson_module_jackson_module_parameter_names_2_9_7.xml │ ├── Maven__com_fasterxml_woodstox_woodstox_core_5_0_3.xml │ ├── Maven__com_github_andrewoma_dexx_dexx_collections_0_2.xml │ ├── Maven__com_github_vlsi_compactmap_compactmap_1_2_1.xml │ ├── Maven__com_google_code_findbugs_annotations_3_0_1.xml │ ├── Maven__com_google_code_findbugs_jsr305_3_0_1.xml │ ├── Maven__com_google_code_gson_gson_2_8_5.xml │ ├── Maven__com_google_guava_guava_16_0.xml │ ├── Maven__com_google_inject_guice_4_1_0.xml │ ├── Maven__com_jayway_jsonpath_json_path_2_4_0.xml │ ├── Maven__com_netflix_archaius_archaius_core_0_7_6.xml │ ├── Maven__com_netflix_eureka_eureka_client_1_9_3.xml │ ├── Maven__com_netflix_eureka_eureka_core_1_9_3.xml │ ├── Maven__com_netflix_hystrix_hystrix_core_1_5_12.xml │ ├── Maven__com_netflix_netflix_commons_netflix_commons_util_0_3_0.xml │ ├── Maven__com_netflix_netflix_commons_netflix_eventbus_0_3_0.xml │ ├── Maven__com_netflix_netflix_commons_netflix_infix_0_3_0.xml │ ├── Maven__com_netflix_netflix_commons_netflix_statistics_0_1_1.xml │ ├── Maven__com_netflix_ribbon_ribbon_2_2_5.xml │ ├── Maven__com_netflix_ribbon_ribbon_core_2_2_5.xml │ ├── Maven__com_netflix_ribbon_ribbon_eureka_2_2_5.xml │ ├── Maven__com_netflix_ribbon_ribbon_httpclient_2_2_5.xml │ ├── Maven__com_netflix_ribbon_ribbon_loadbalancer_2_2_5.xml │ ├── Maven__com_netflix_ribbon_ribbon_transport_2_2_5.xml │ ├── Maven__com_netflix_servo_servo_core_0_12_21.xml │ ├── Maven__com_sun_jersey_contribs_jersey_apache_client4_1_19_1.xml │ ├── Maven__com_sun_jersey_jersey_client_1_19_1.xml │ ├── Maven__com_sun_jersey_jersey_core_1_19_1.xml │ ├── Maven__com_sun_jersey_jersey_server_1_19_1.xml │ ├── Maven__com_sun_jersey_jersey_servlet_1_19_1.xml │ ├── Maven__com_thoughtworks_xstream_xstream_1_4_10.xml │ ├── Maven__com_vaadin_external_google_android_json_0_0_20131108_vaadin1.xml │ ├── Maven__commons_codec_commons_codec_1_11.xml │ ├── Maven__commons_collections_commons_collections_3_2_2.xml │ ├── Maven__commons_configuration_commons_configuration_1_8.xml │ ├── Maven__commons_fileupload_commons_fileupload_1_3_3.xml │ ├── Maven__commons_io_commons_io_2_2.xml │ ├── Maven__commons_jxpath_commons_jxpath_1_3.xml │ ├── Maven__commons_lang_commons_lang_2_6.xml │ ├── Maven__io_github_openfeign_feign_core_9_7_0.xml │ ├── Maven__io_github_openfeign_feign_hystrix_9_7_0.xml │ ├── Maven__io_github_openfeign_feign_java8_9_7_0.xml │ ├── Maven__io_github_openfeign_feign_slf4j_9_7_0.xml │ ├── Maven__io_github_openfeign_form_feign_form_3_3_0.xml │ ├── Maven__io_github_openfeign_form_feign_form_spring_3_3_0.xml │ ├── Maven__io_micrometer_micrometer_core_1_1_0.xml │ ├── Maven__io_netty_netty_buffer_4_1_29_Final.xml │ ├── Maven__io_netty_netty_codec_4_1_29_Final.xml │ ├── Maven__io_netty_netty_codec_http_4_1_29_Final.xml │ ├── Maven__io_netty_netty_common_4_1_29_Final.xml │ ├── Maven__io_netty_netty_resolver_4_1_29_Final.xml │ ├── Maven__io_netty_netty_transport_4_1_29_Final.xml │ ├── Maven__io_netty_netty_transport_native_epoll_4_1_29_Final.xml │ ├── Maven__io_netty_netty_transport_native_unix_common_4_1_29_Final.xml │ ├── Maven__io_reactivex_rxjava_1_3_8.xml │ ├── Maven__io_reactivex_rxnetty_0_4_9.xml │ ├── Maven__io_reactivex_rxnetty_contexts_0_4_9.xml │ ├── Maven__io_reactivex_rxnetty_servo_0_4_9.xml │ ├── Maven__javax_annotation_javax_annotation_api_1_3_2.xml │ ├── Maven__javax_inject_javax_inject_1.xml │ ├── Maven__javax_validation_validation_api_2_0_1_Final.xml │ ├── Maven__javax_ws_rs_jsr311_api_1_1_1.xml │ ├── Maven__javax_xml_stream_stax_api_1_0_2.xml │ ├── Maven__joda_time_joda_time_2_10_1.xml │ ├── Maven__junit_junit_4_12.xml │ ├── Maven__net_bytebuddy_byte_buddy_1_9_3.xml │ ├── Maven__net_bytebuddy_byte_buddy_agent_1_9_3.xml │ ├── Maven__net_jcip_jcip_annotations_1_0.xml │ ├── Maven__net_minidev_accessors_smart_1_2.xml │ ├── Maven__net_minidev_json_smart_2_3.xml │ ├── Maven__org_antlr_antlr_runtime_3_4.xml │ ├── Maven__org_antlr_stringtemplate_3_2_1.xml │ ├── Maven__org_apache_commons_commons_math_2_2.xml │ ├── Maven__org_apache_httpcomponents_httpclient_4_5_6.xml │ ├── Maven__org_apache_httpcomponents_httpcore_4_4_10.xml │ ├── Maven__org_apache_logging_log4j_log4j_api_2_11_1.xml │ ├── Maven__org_apache_logging_log4j_log4j_to_slf4j_2_11_1.xml │ ├── Maven__org_apache_tomcat_embed_tomcat_embed_core_9_0_12.xml │ ├── Maven__org_apache_tomcat_embed_tomcat_embed_el_9_0_12.xml │ ├── Maven__org_apache_tomcat_embed_tomcat_embed_websocket_9_0_12.xml │ ├── Maven__org_aspectj_aspectjweaver_1_9_2.xml │ ├── Maven__org_assertj_assertj_core_3_11_1.xml │ ├── Maven__org_bouncycastle_bcpkix_jdk15on_1_60.xml │ ├── Maven__org_bouncycastle_bcprov_jdk15on_1_60.xml │ ├── Maven__org_codehaus_jettison_jettison_1_3_7.xml │ ├── Maven__org_codehaus_woodstox_stax2_api_3_1_4.xml │ ├── Maven__org_codehaus_woodstox_woodstox_core_asl_4_4_1.xml │ ├── Maven__org_freemarker_freemarker_2_3_28.xml │ ├── Maven__org_hamcrest_hamcrest_core_1_3.xml │ ├── Maven__org_hamcrest_hamcrest_library_1_3.xml │ ├── Maven__org_hdrhistogram_HdrHistogram_2_1_9.xml │ ├── Maven__org_hibernate_validator_hibernate_validator_6_0_13_Final.xml │ ├── Maven__org_jboss_logging_jboss_logging_3_3_2_Final.xml │ ├── Maven__org_latencyutils_LatencyUtils_2_0_3.xml │ ├── Maven__org_mockito_mockito_core_2_23_0.xml │ ├── Maven__org_objenesis_objenesis_2_6.xml │ ├── Maven__org_ow2_asm_asm_5_0_4.xml │ ├── Maven__org_skyscreamer_jsonassert_1_5_0.xml │ ├── Maven__org_slf4j_jul_to_slf4j_1_7_25.xml │ ├── Maven__org_slf4j_slf4j_api_1_7_25.xml │ ├── Maven__org_springframework_boot_spring_boot_2_1_0_RELEASE.xml │ ├── Maven__org_springframework_boot_spring_boot_actuator_2_1_0_RELEASE.xml │ ├── Maven__org_springframework_boot_spring_boot_actuator_autoconfigure_2_1_0_RELEASE.xml │ ├── Maven__org_springframework_boot_spring_boot_autoconfigure_2_1_0_RELEASE.xml │ ├── Maven__org_springframework_boot_spring_boot_starter_2_1_0_RELEASE.xml │ ├── Maven__org_springframework_boot_spring_boot_starter_actuator_2_1_0_RELEASE.xml │ ├── Maven__org_springframework_boot_spring_boot_starter_aop_2_1_0_RELEASE.xml │ ├── Maven__org_springframework_boot_spring_boot_starter_freemarker_2_1_0_RELEASE.xml │ ├── Maven__org_springframework_boot_spring_boot_starter_json_2_1_0_RELEASE.xml │ ├── Maven__org_springframework_boot_spring_boot_starter_logging_2_1_0_RELEASE.xml │ ├── Maven__org_springframework_boot_spring_boot_starter_test_2_1_0_RELEASE.xml │ ├── Maven__org_springframework_boot_spring_boot_starter_tomcat_2_1_0_RELEASE.xml │ ├── Maven__org_springframework_boot_spring_boot_starter_web_2_1_0_RELEASE.xml │ ├── Maven__org_springframework_boot_spring_boot_test_2_1_0_RELEASE.xml │ ├── Maven__org_springframework_boot_spring_boot_test_autoconfigure_2_1_0_RELEASE.xml │ ├── Maven__org_springframework_cloud_spring_cloud_commons_2_1_0_M1.xml │ ├── Maven__org_springframework_cloud_spring_cloud_context_2_1_0_M1.xml │ ├── Maven__org_springframework_cloud_spring_cloud_netflix_archaius_2_1_0_M1.xml │ ├── Maven__org_springframework_cloud_spring_cloud_netflix_core_2_1_0_M1.xml │ ├── Maven__org_springframework_cloud_spring_cloud_netflix_eureka_client_2_1_0_M1.xml │ ├── Maven__org_springframework_cloud_spring_cloud_netflix_eureka_server_2_1_0_M1.xml │ ├── Maven__org_springframework_cloud_spring_cloud_netflix_ribbon_2_1_0_M1.xml │ ├── Maven__org_springframework_cloud_spring_cloud_openfeign_core_2_1_0_M1.xml │ ├── Maven__org_springframework_cloud_spring_cloud_starter_2_1_0_M1.xml │ ├── Maven__org_springframework_cloud_spring_cloud_starter_netflix_archaius_2_1_0_M1.xml │ ├── Maven__org_springframework_cloud_spring_cloud_starter_netflix_eureka_client_2_1_0_M1.xml │ ├── Maven__org_springframework_cloud_spring_cloud_starter_netflix_eureka_server_2_1_0_M1.xml │ ├── Maven__org_springframework_cloud_spring_cloud_starter_netflix_ribbon_2_1_0_M1.xml │ ├── Maven__org_springframework_cloud_spring_cloud_starter_openfeign_2_1_0_M1.xml │ ├── Maven__org_springframework_security_spring_security_crypto_5_1_1_RELEASE.xml │ ├── Maven__org_springframework_security_spring_security_rsa_1_0_7_RELEASE.xml │ ├── Maven__org_springframework_spring_aop_5_1_2_RELEASE.xml │ ├── Maven__org_springframework_spring_beans_5_1_2_RELEASE.xml │ ├── Maven__org_springframework_spring_context_5_1_2_RELEASE.xml │ ├── Maven__org_springframework_spring_context_support_5_1_2_RELEASE.xml │ ├── Maven__org_springframework_spring_core_5_1_2_RELEASE.xml │ ├── Maven__org_springframework_spring_expression_5_1_2_RELEASE.xml │ ├── Maven__org_springframework_spring_jcl_5_1_2_RELEASE.xml │ ├── Maven__org_springframework_spring_test_5_1_2_RELEASE.xml │ ├── Maven__org_springframework_spring_web_5_1_2_RELEASE.xml │ ├── Maven__org_springframework_spring_webmvc_5_1_2_RELEASE.xml │ ├── Maven__org_xmlunit_xmlunit_core_2_6_2.xml │ ├── Maven__org_yaml_snakeyaml_1_23.xml │ ├── Maven__stax_stax_api_1_0_1.xml │ ├── Maven__xmlpull_xmlpull_1_1_3_1.xml │ └── Maven__xpp3_xpp3_min_1_1_4c.xml ├── misc.xml ├── modules.xml ├── vcs.xml └── workspace.xml ├── Jenkinsfile.groovy ├── Jenkinsfile_node.groovy ├── README.md ├── bootstrap ├── .DS_Store ├── gitlab01.png ├── gitlab02.png ├── gitlab03.png ├── install-docker.md ├── install-gitlab.md ├── install-harbor.md ├── install-jenkins.md ├── install-kubernetes.md ├── install-sonarqube.md ├── jenkins01.png ├── jenkins02.png ├── k8s01.jpg ├── k8s02.jpg ├── k8s03.jpg ├── k8s04.jpg ├── k8s05.jpg ├── k8s06.jpg ├── k8s07.jpg ├── tutorials.md ├── 可持续集成流程图.png ├── 可持续集成生态图.png └── 可持续集成示意图.png ├── build-image.sh ├── docker-compose.yml ├── eureka-consumer-feign ├── .DS_Store ├── .gitignore ├── .mvn │ └── wrapper │ │ ├── maven-wrapper.jar │ │ └── maven-wrapper.properties ├── Dockerfile ├── main-consumer-k8s.yaml ├── mvnw ├── mvnw.cmd ├── pom.xml └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── springcloud │ │ │ └── eurekaconsumerfeign │ │ │ ├── EurekaConsumerFeignApplication.java │ │ │ ├── controller │ │ │ └── ConsumerController.java │ │ │ └── service │ │ │ └── UserConsumer.java │ └── resources │ │ └── application.properties │ └── test │ └── java │ └── com │ └── springcloud │ └── eurekaconsumerfeign │ └── EurekaConsumerFeignApplicationTests.java ├── eureka-provider ├── .DS_Store ├── .gitignore ├── .mvn │ └── wrapper │ │ ├── maven-wrapper.jar │ │ └── maven-wrapper.properties ├── Dockerfile ├── main-provider-k8s.yaml ├── mvnw ├── mvnw.cmd ├── pom.xml └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── springcloud │ │ │ └── eurekaprovider │ │ │ ├── EurekaProviderApplication.java │ │ │ └── controller │ │ │ └── ProviderController.java │ └── resources │ │ ├── application.properties │ │ └── application.yaml.bak │ └── test │ └── java │ └── com │ └── springcloud │ └── eurekaprovider │ └── EurekaProviderApplicationTests.java ├── eureka-server ├── .DS_Store ├── .gitignore ├── .mvn │ └── wrapper │ │ ├── maven-wrapper.jar │ │ └── maven-wrapper.properties ├── Dockerfile ├── eureka-server-k8s.yaml ├── main-eureka-k8s.yaml ├── mvnw ├── mvnw.cmd ├── pom.xml └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── springcloud │ │ │ └── eurekaserver │ │ │ └── EurekaServerApplication.java │ └── resources │ │ ├── application.properties │ │ └── application.yaml.bak │ └── test │ └── java │ └── com │ └── springcloud │ └── eurekaserver │ └── EurekaServerApplicationTests.java ├── pom.xml ├── springcloudFeign.iml └── update-image.sh /.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/guoliangdi/springcloudFeign/52f0a9c805bdf27eb348592d93b5f3e47bb76c59/.DS_Store -------------------------------------------------------------------------------- /.idea/compiler.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /.idea/encodings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__antlr_antlr_2_7_7.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__aopalliance_aopalliance_1_0.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__ch_qos_logback_logback_classic_1_2_3.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__ch_qos_logback_logback_core_1_2_3.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__com_fasterxml_classmate_1_4_0.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__com_fasterxml_jackson_core_jackson_annotations_2_9_0.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__com_fasterxml_jackson_core_jackson_core_2_9_7.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__com_fasterxml_jackson_core_jackson_databind_2_9_7.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__com_fasterxml_jackson_dataformat_jackson_dataformat_xml_2_9_7.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__com_fasterxml_jackson_datatype_jackson_datatype_jdk8_2_9_7.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__com_fasterxml_jackson_datatype_jackson_datatype_jsr310_2_9_7.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__com_fasterxml_jackson_module_jackson_module_jaxb_annotations_2_9_7.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__com_fasterxml_jackson_module_jackson_module_parameter_names_2_9_7.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__com_fasterxml_woodstox_woodstox_core_5_0_3.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__com_github_andrewoma_dexx_dexx_collections_0_2.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__com_github_vlsi_compactmap_compactmap_1_2_1.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__com_google_code_findbugs_annotations_3_0_1.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__com_google_code_findbugs_jsr305_3_0_1.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__com_google_code_gson_gson_2_8_5.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__com_google_guava_guava_16_0.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__com_google_inject_guice_4_1_0.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__com_jayway_jsonpath_json_path_2_4_0.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__com_netflix_archaius_archaius_core_0_7_6.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__com_netflix_eureka_eureka_client_1_9_3.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__com_netflix_eureka_eureka_core_1_9_3.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__com_netflix_hystrix_hystrix_core_1_5_12.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__com_netflix_netflix_commons_netflix_commons_util_0_3_0.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__com_netflix_netflix_commons_netflix_eventbus_0_3_0.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__com_netflix_netflix_commons_netflix_infix_0_3_0.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__com_netflix_netflix_commons_netflix_statistics_0_1_1.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__com_netflix_ribbon_ribbon_2_2_5.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__com_netflix_ribbon_ribbon_core_2_2_5.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__com_netflix_ribbon_ribbon_eureka_2_2_5.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__com_netflix_ribbon_ribbon_httpclient_2_2_5.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__com_netflix_ribbon_ribbon_loadbalancer_2_2_5.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__com_netflix_ribbon_ribbon_transport_2_2_5.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__com_netflix_servo_servo_core_0_12_21.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__com_sun_jersey_contribs_jersey_apache_client4_1_19_1.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__com_sun_jersey_jersey_client_1_19_1.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__com_sun_jersey_jersey_core_1_19_1.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__com_sun_jersey_jersey_server_1_19_1.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__com_sun_jersey_jersey_servlet_1_19_1.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__com_thoughtworks_xstream_xstream_1_4_10.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__com_vaadin_external_google_android_json_0_0_20131108_vaadin1.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__commons_codec_commons_codec_1_11.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__commons_collections_commons_collections_3_2_2.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__commons_configuration_commons_configuration_1_8.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__commons_fileupload_commons_fileupload_1_3_3.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__commons_io_commons_io_2_2.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__commons_jxpath_commons_jxpath_1_3.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__commons_lang_commons_lang_2_6.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__io_github_openfeign_feign_core_9_7_0.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__io_github_openfeign_feign_hystrix_9_7_0.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__io_github_openfeign_feign_java8_9_7_0.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__io_github_openfeign_feign_slf4j_9_7_0.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__io_github_openfeign_form_feign_form_3_3_0.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__io_github_openfeign_form_feign_form_spring_3_3_0.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__io_micrometer_micrometer_core_1_1_0.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__io_netty_netty_buffer_4_1_29_Final.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__io_netty_netty_codec_4_1_29_Final.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__io_netty_netty_codec_http_4_1_29_Final.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__io_netty_netty_common_4_1_29_Final.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__io_netty_netty_resolver_4_1_29_Final.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__io_netty_netty_transport_4_1_29_Final.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__io_netty_netty_transport_native_epoll_4_1_29_Final.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__io_netty_netty_transport_native_unix_common_4_1_29_Final.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__io_reactivex_rxjava_1_3_8.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__io_reactivex_rxnetty_0_4_9.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__io_reactivex_rxnetty_contexts_0_4_9.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__io_reactivex_rxnetty_servo_0_4_9.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__javax_annotation_javax_annotation_api_1_3_2.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__javax_inject_javax_inject_1.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__javax_validation_validation_api_2_0_1_Final.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__javax_ws_rs_jsr311_api_1_1_1.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__javax_xml_stream_stax_api_1_0_2.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__joda_time_joda_time_2_10_1.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__junit_junit_4_12.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__net_bytebuddy_byte_buddy_1_9_3.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__net_bytebuddy_byte_buddy_agent_1_9_3.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__net_jcip_jcip_annotations_1_0.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__net_minidev_accessors_smart_1_2.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__net_minidev_json_smart_2_3.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_antlr_antlr_runtime_3_4.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_antlr_stringtemplate_3_2_1.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_apache_commons_commons_math_2_2.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_apache_httpcomponents_httpclient_4_5_6.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_apache_httpcomponents_httpcore_4_4_10.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_apache_logging_log4j_log4j_api_2_11_1.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_apache_logging_log4j_log4j_to_slf4j_2_11_1.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_apache_tomcat_embed_tomcat_embed_core_9_0_12.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_apache_tomcat_embed_tomcat_embed_el_9_0_12.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_apache_tomcat_embed_tomcat_embed_websocket_9_0_12.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_aspectj_aspectjweaver_1_9_2.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_assertj_assertj_core_3_11_1.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_bouncycastle_bcpkix_jdk15on_1_60.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_bouncycastle_bcprov_jdk15on_1_60.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_codehaus_jettison_jettison_1_3_7.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_codehaus_woodstox_stax2_api_3_1_4.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_codehaus_woodstox_woodstox_core_asl_4_4_1.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_freemarker_freemarker_2_3_28.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_hamcrest_hamcrest_core_1_3.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_hamcrest_hamcrest_library_1_3.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_hdrhistogram_HdrHistogram_2_1_9.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_hibernate_validator_hibernate_validator_6_0_13_Final.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_jboss_logging_jboss_logging_3_3_2_Final.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_latencyutils_LatencyUtils_2_0_3.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_mockito_mockito_core_2_23_0.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_objenesis_objenesis_2_6.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_ow2_asm_asm_5_0_4.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_skyscreamer_jsonassert_1_5_0.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_slf4j_jul_to_slf4j_1_7_25.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_slf4j_slf4j_api_1_7_25.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_springframework_boot_spring_boot_2_1_0_RELEASE.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_springframework_boot_spring_boot_actuator_2_1_0_RELEASE.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_springframework_boot_spring_boot_actuator_autoconfigure_2_1_0_RELEASE.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_springframework_boot_spring_boot_autoconfigure_2_1_0_RELEASE.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_2_1_0_RELEASE.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_actuator_2_1_0_RELEASE.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_aop_2_1_0_RELEASE.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_freemarker_2_1_0_RELEASE.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_json_2_1_0_RELEASE.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_logging_2_1_0_RELEASE.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_test_2_1_0_RELEASE.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_tomcat_2_1_0_RELEASE.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_web_2_1_0_RELEASE.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_springframework_boot_spring_boot_test_2_1_0_RELEASE.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_springframework_boot_spring_boot_test_autoconfigure_2_1_0_RELEASE.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_springframework_cloud_spring_cloud_commons_2_1_0_M1.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_springframework_cloud_spring_cloud_context_2_1_0_M1.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_springframework_cloud_spring_cloud_netflix_archaius_2_1_0_M1.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_springframework_cloud_spring_cloud_netflix_core_2_1_0_M1.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_springframework_cloud_spring_cloud_netflix_eureka_client_2_1_0_M1.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_springframework_cloud_spring_cloud_netflix_eureka_server_2_1_0_M1.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_springframework_cloud_spring_cloud_netflix_ribbon_2_1_0_M1.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_springframework_cloud_spring_cloud_openfeign_core_2_1_0_M1.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_springframework_cloud_spring_cloud_starter_2_1_0_M1.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_springframework_cloud_spring_cloud_starter_netflix_archaius_2_1_0_M1.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_springframework_cloud_spring_cloud_starter_netflix_eureka_client_2_1_0_M1.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_springframework_cloud_spring_cloud_starter_netflix_eureka_server_2_1_0_M1.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_springframework_cloud_spring_cloud_starter_netflix_ribbon_2_1_0_M1.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_springframework_cloud_spring_cloud_starter_openfeign_2_1_0_M1.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_springframework_security_spring_security_crypto_5_1_1_RELEASE.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_springframework_security_spring_security_rsa_1_0_7_RELEASE.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_springframework_spring_aop_5_1_2_RELEASE.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_springframework_spring_beans_5_1_2_RELEASE.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_springframework_spring_context_5_1_2_RELEASE.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_springframework_spring_context_support_5_1_2_RELEASE.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_springframework_spring_core_5_1_2_RELEASE.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_springframework_spring_expression_5_1_2_RELEASE.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_springframework_spring_jcl_5_1_2_RELEASE.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_springframework_spring_test_5_1_2_RELEASE.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_springframework_spring_web_5_1_2_RELEASE.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_springframework_spring_webmvc_5_1_2_RELEASE.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_xmlunit_xmlunit_core_2_6_2.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_yaml_snakeyaml_1_23.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__stax_stax_api_1_0_1.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__xmlpull_xmlpull_1_1_3_1.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__xpp3_xpp3_min_1_1_4c.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/misc.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /.idea/modules.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /.idea/vcs.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /Jenkinsfile.groovy: -------------------------------------------------------------------------------- 1 | // Jenkinsfile (Declarative Pipeline) 多分支流水线 2 | // https://jenkins.io/doc/book/pipeline/jenkinsfile/ 3 | pipeline { 4 | agent any 5 | 6 | stages { 7 | stage('Build') { 8 | steps { 9 | echo 'Building..' 10 | } 11 | } 12 | stage('Test') { 13 | steps { 14 | echo 'Testing..' 15 | } 16 | } 17 | stage('Deploy') { 18 | steps { 19 | echo 'Deploying....' 20 | } 21 | } 22 | } 23 | } -------------------------------------------------------------------------------- /Jenkinsfile_node.groovy: -------------------------------------------------------------------------------- 1 | // node scripted pipeline (单流水线风格) 2 | // https://jenkins.io/doc/book/pipeline/jenkinsfile/ 3 | // https://docs.sonarqube.org/display/SCAN/Analyzing+with+SonarQube+Scanner+for+Jenkins#app-switcher 4 | // https://jenkins.io/doc/tutorials/create-a-pipeline-in-blue-ocean/ 5 | // https://jenkins.io/blog/2017/04/18/continuousdelivery-devops-sonarqube/ 6 | node { 7 | 8 | // jenkins workspace 9 | def PROJECT_PATH="/root/.jenkins/workspace/springcloudFeign" 10 | 11 | 12 | // config git 13 | stage('获取代码') { 14 | git credentialsId: 'e60e6c1f-244d-45c9-95b4-b7ddffa55384', url: 'http://172.20.4.39/bitauto/springcloudfeign.git' 15 | } 16 | 17 | stage('代码构建+代码检查') { 18 | withSonarQubeEnv('My SonarQube Server') { 19 | sh 'mvn clean package -DskipTests sonar:sonar' 20 | } // SonarQube taskId is automatically attached to the pipeline context 21 | } 22 | 23 | stage('构建镜像') { 24 | sh PROJECT_PATH +'/build-image.sh' 25 | } 26 | 27 | stage('更新镜像') { 28 | sh PROJECT_PATH +'/update-image.sh' 29 | } 30 | 31 | // No need to occupy a node 32 | stage("Quality Gate") { 33 | timeout(time: 1, unit: 'HOURS') { // Just in case something goes wrong, pipeline will be killed after a timeout 34 | def qg = waitForQualityGate() // Reuse taskId previously collected by withSonarQubeEnv 35 | if (qg.status != 'OK') { 36 | error "Pipeline aborted due to quality gate failure: ${qg.status}" 37 | } 38 | } 39 | } 40 | 41 | } 42 | 43 | 44 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 |

CI/CD 持续集成

2 | 3 | [![License](https://img.shields.io/badge/license-GPL-blue.svg)](LICENSE) 4 | [![GitHub stars](https://img.shields.io/badge/follow-guoliangdi-green.svg)](https://github.com/guoliangD/springcloudFeign/) 5 | [![GitHub forks](https://img.shields.io/github/forks/guoliangD/springcloudFeign.svg)](https://github.com/guoliangD/springcloudFeign/) 6 | [![GitHub stars](https://img.shields.io/github/stars/guoliangD/springcloudFeign.svg)](https://github.com/guoliangD/springcloudFeign/) 7 | 8 | 9 | ## 介绍 10 | 11 | 基于Gitlab + Jenkins + Harbor + Sonarqube + Docker + Kubernetes 完成可持续集成与可持续交付解决方案 12 | 13 | `springcloudFeign` 是一个可持续集成的demo架构,基于spring cloud技术栈 14 | 15 | 16 | ## 可持续集成示意图 17 | 18 | ![示意图](bootstrap/可持续集成示意图.png) 19 | 20 | 21 | ## 可持续集成生态图 22 | 23 | ![生态图](bootstrap/可持续集成生态图.png) 24 | 25 | 26 | ## 实现目标 27 | ![流程图](bootstrap/可持续集成流程图.png) 28 | 29 | ![jenkins02](bootstrap/jenkins02.png) 30 | 31 | ### 技术选型 32 | * jdk1.8 33 | * gitlab 34 | * jenkins 35 | * sonarqube 36 | * harbor & nexus3 & artifactory (本示例采用harbor) 37 | * docker 38 | * kubernetes 39 | 40 | ### Tutorials Prerequisites(准备环境): 41 | 42 | - A machine with: 43 | - linux environment `centos7` 44 | - 256 MB of RAM, although more than 512MB is recommended 45 | - 10 GB of drive space (for Jenkins and your Docker image) 46 | - The following software installed: 47 | - `Java 8` (either a JRE or Java Development Kit (JDK) is fine) 48 | - Docker (navigate to Get Docker at the top of the website to access the Docker download that’s suitable for your platform) 49 | 50 | 51 | ### Getting started(安装环境): 52 | [安装docker](bootstrap/install-docker.md) 53 | 54 | [安装gitlab](bootstrap/install-gitlab.md) 55 | 56 | [安装jenkins](bootstrap/install-jenkins.md) 57 | 58 | [安装sonarqube](bootstrap/install-sonarqube.md) 59 | 60 | [安装harbor](bootstrap/install-harbor.md) 61 | 62 | [安装kubernetes](bootstrap/install-kubernetes.md) 63 | 64 | ### 运行教程 <---- 65 | [点我查看运行教程](https://github.com/guoliangd/springcloudFeign/wiki) 66 | 67 | 68 | ## If you have a better suggestion,Please share out,Let's do better. 69 | > Author :GuoliangDi 70 | > Email :guoliang.di@gmail.com -------------------------------------------------------------------------------- /bootstrap/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/guoliangdi/springcloudFeign/52f0a9c805bdf27eb348592d93b5f3e47bb76c59/bootstrap/.DS_Store -------------------------------------------------------------------------------- /bootstrap/gitlab01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/guoliangdi/springcloudFeign/52f0a9c805bdf27eb348592d93b5f3e47bb76c59/bootstrap/gitlab01.png -------------------------------------------------------------------------------- /bootstrap/gitlab02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/guoliangdi/springcloudFeign/52f0a9c805bdf27eb348592d93b5f3e47bb76c59/bootstrap/gitlab02.png -------------------------------------------------------------------------------- /bootstrap/gitlab03.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/guoliangdi/springcloudFeign/52f0a9c805bdf27eb348592d93b5f3e47bb76c59/bootstrap/gitlab03.png -------------------------------------------------------------------------------- /bootstrap/install-docker.md: -------------------------------------------------------------------------------- 1 |

docker installation

2 | 3 | [![License](https://img.shields.io/badge/license-GPL-blue.svg)](LICENSE) 4 | [![GitHub stars](https://img.shields.io/badge/follow-guoliangdi-green.svg)](https://github.com/guoliangD/springcloudFeign/) 5 | 6 | 7 | ### step 1: 安装依赖 8 | `sudo yum install -y yum-utils device-mapper-persistent-data lvm2` 9 | 10 | ### step 2: 添加软件源信息 11 | `sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo` 12 | 13 | ### step 3: 更新并安装 Docker-CE 14 | `sudo yum makecache fast` 15 | 16 | `sudo yum -y install docker-ce` 17 | 18 | ### step 4: 开启Docker服务 19 | `sudo systemctl start docker` 20 | 21 | ### step 5: 查看docker version 22 | `sudo docker version` 23 | 24 | ### 注意: 25 | ``` 26 | # 官方软件源默认启用了最新的软件,您可以通过编辑软件源的方式获取各个版本的软件包。例如官方并没有将测试版本的软件源置为可用,你可以通过以下方式开启。同理可以开启各种测试版本等。 27 | - vim /etc/yum.repos.d/docker-ce.repo 28 | - 将 [docker-ce-test] 下方的 enabled=0 修改为 enabled=1 29 | - 30 | - 安装指定版本的Docker-CE: 31 | - Step 1: 查找Docker-CE的版本: 32 | - yum list docker-ce.x86_64 --showduplicates | sort -r 33 | - Loading mirror speeds from cached hostfile 34 | - Loaded plugins: branch, fastestmirror, langpacks 35 | - docker-ce.x86_64 17.03.1.ce-1.el7.centos docker-ce-stable 36 | - docker-ce.x86_64 17.03.1.ce-1.el7.centos @docker-ce-stable 37 | - docker-ce.x86_64 17.03.0.ce-1.el7.centos docker-ce-stable 38 | - Available Packages 39 | - Step2 : 安装指定版本的Docker-CE: (VERSION 例如上面的 17.03.0.ce.1-1.el7.centos) 40 | - sudo yum -y install docker-ce-[VERSION] 41 | ``` -------------------------------------------------------------------------------- /bootstrap/install-gitlab.md: -------------------------------------------------------------------------------- 1 |

gitlab installation

2 | 3 | [![License](https://img.shields.io/badge/license-GPL-blue.svg)](LICENSE) 4 | [![GitHub stars](https://img.shields.io/badge/follow-guoliangdi-green.svg)](https://github.com/guoliangD/springcloudFeign/) 5 | 6 | 7 | ## 一、官方指定安装方式 8 | https://about.gitlab.com/install/#centos-7?version=ce 9 | 10 | ### step 1: 安装依赖 11 | `sudo yum install -y curl policycoreutils-python openssh-server openssh-clients` 12 | 13 | `sudo firewall-cmd --permanent --add-service=http` 14 | 15 | `sudo systemctl reload firewalld` 16 | 17 | ### step 2: 添加软件源信息 18 | `curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash` 19 | 20 | ### step 3: 安装 gitlab-ce 21 | `sudo EXTERNAL_URL="http://gitlab.example.com" yum install -y gitlab-ce` 22 | 23 | ### step 4: 配置并启动gitlab-ce 24 | `gitlab-ctl reconfigure` 25 | 26 | ## 二、docker安装方式 27 | https://hub.docker.com/r/gitlab/gitlab-ce/ 28 | 29 | ### step 1: 安装 30 | `sudo docker pull gitlab/gitlab-ce:latest` 31 | 32 | ### step 2: 启动 33 | ``` 34 | sudo docker run --detach \ 35 | --hostname gitlab.example.com \ 36 | --publish 443:443 --publish 80:80 --publish 22:22 \ 37 | --name gitlab \ 38 | --restart always \ 39 | --volume /srv/gitlab/config:/etc/gitlab \ 40 | --volume /srv/gitlab/logs:/var/log/gitlab \ 41 | --volume /srv/gitlab/data:/var/opt/gitlab \ 42 | gitlab/gitlab-ce:latest 43 | ``` 44 | 45 | 46 | ### step 3: 配置 47 | `docker exec -it gitlab /bin/bash` 48 | 49 | `vi /etc/gitlab/gitlab.rb` 50 | 51 | 52 | 53 | ### IMPORTANT NOTE: 54 | * root login -------------------------------------------------------------------------------- /bootstrap/install-harbor.md: -------------------------------------------------------------------------------- 1 |

harbor installation

2 | 3 | [![License](https://img.shields.io/badge/license-GPL-blue.svg)](LICENSE) 4 | [![GitHub stars](https://img.shields.io/badge/follow-guoliangdi-green.svg)](https://github.com/guoliangD/springcloudFeign/) 5 | 6 | 7 | ## 一、github link 8 | https://github.com/goharbor/harbor 9 | 10 | ### step 1: 参考 11 | https://github.com/goharbor/harbor/blob/master/docs/installation_guide.md 12 | 13 | 14 | ### Prerequisites for the target host(硬件要求) 15 | 16 | 17 | | Resource | Capacity | Description | 18 | | ---- | ------ | ---- | 19 | | CPU | minimal 2 CPU | 4 CPU is preferred | 20 | | Mem | minimal 4GB | 8GB is preferred | 21 | | Disk | minimal 40GB | 160GB is preferred | 22 | 23 | ### Prerequisites for the target host(软件包) 24 | 25 | | Software | Version | Description | 26 | | ---- | ------ | ---- | 27 | | Python | version 2.7 or higher | Note that you may have to install Python on Linux distributions (Gentoo, Arch) that do not come with a Python interpreter installed by default | 28 | | Docker engine | version 1.10 or higher | For installation instructions, please refer to: https://docs.docker.com/engine/installation/ | 29 | | Docker Compose | version 1.6.0 or higher | For installation instructions, please refer to: https://docs.docker.com/compose/install/ | 30 | | Openssl | latest is preferred | Generate certificate and keys for Harbor | 31 | 32 | ### Prerequisites for the target host(网络端口) 33 | 34 | | Port | Protocol | Description | 35 | | ---- | ------ | ---- | 36 | | 443 | HTTPS | Harbor portal and core API will accept requests on this port for https protocol | 37 | | 4443 | HTTPS | Connections to the Docker Content Trust service for Harbor, only needed when Notary is enabled | 38 | | 80 | HTTP | Harbor portal and core API will accept requests on this port for http protocol | 39 | 40 | 41 | ### step 1: 下载安装包(离线安装包) 42 | https://github.com/goharbor/harbor/releases 43 | 44 | `wget https://storage.googleapis.com/harbor-releases/release-1.6.0/harbor-online-installer-v1.6.2.tgz` 45 | 46 | `tar xvf harbor-online-installer-v1.6.2.tgz` 47 | 48 | ### step 2: config harbor.cfg 49 | * 配置hostname eg. 192.168.1.100 or (reg.youdomain.com) 50 | * ui_url_protocol(http or https. Default is http) 51 | * email settings 52 | 53 | ### step 3: run install.sh to install and start harbor 54 | `cd harbor && sh install.sh` 55 | 56 | ### step 4: Managing Harbor's lifecycle 57 | `Stopping Harbor:` 58 | 59 | ``` 60 | $ sudo docker-compose stop 61 | Stopping nginx ... done 62 | Stopping harbor-portal ... done 63 | Stopping harbor-jobservice ... done 64 | Stopping harbor-core ... done 65 | Stopping registry ... done 66 | Stopping redis ... done 67 | Stopping registryctl ... done 68 | Stopping harbor-db ... done 69 | Stopping harbor-adminserver ... done 70 | Stopping harbor-log ... done 71 | 72 | ``` 73 | 74 | `Restarting Harbor after stopping:` 75 | 76 | ``` 77 | $ sudo docker-compose start 78 | Starting log ... done 79 | Starting registry ... done 80 | Starting registryctl ... done 81 | Starting postgresql ... done 82 | Starting adminserver ... done 83 | Starting core ... done 84 | Starting portal ... done 85 | Starting redis ... done 86 | Starting jobservice ... done 87 | Starting proxy ... done 88 | 89 | ``` 90 | 91 | 92 | ### IMPORTANT NOTE: 93 | $ sudo docker-compose down -v 94 | 95 | $ vim harbor.cfg 96 | 97 | $ sudo prepare 98 | 99 | $ sudo docker-compose up -d -------------------------------------------------------------------------------- /bootstrap/install-jenkins.md: -------------------------------------------------------------------------------- 1 |

jenkins installation

2 | 3 | [![License](https://img.shields.io/badge/license-GPL-blue.svg)](LICENSE) 4 | [![GitHub stars](https://img.shields.io/badge/follow-guoliangdi-green.svg)](https://github.com/guoliangD/springcloudFeign/) 5 | 6 | 7 | ## 一、jenkins link 8 | https://jenkins.io/doc/pipeline/tour/getting-started/ 9 | 10 | ### Prerequisites for the target host 11 | * jdk1.8 12 | * docker 13 | 14 | ### step 1: 下载jenkins 15 | `wget http://mirrors.jenkins.io/war-stable/latest/jenkins.war` 16 | 17 | ### step 2: 启动 18 | `java -jar jenkins.war --httpPort=8080` 19 | 20 | ### step 3: 访问 21 | Browse to http://localhost:8080 22 | 23 | 24 | ## 二、docker安装方式 25 | https://hub.docker.com/_/jenkins/ 26 | 27 | ### step 1: 安装 28 | `sudo docker pull jenkins` 29 | 30 | ### step 2: 启动 31 | `docker run --name myjenkins -p 8080:8080 -p 50000:50000 -v /var/jenkins_home jenkins` -------------------------------------------------------------------------------- /bootstrap/install-kubernetes.md: -------------------------------------------------------------------------------- 1 |

kubernetes installation

2 | 3 | [![License](https://img.shields.io/badge/license-GPL-blue.svg)](LICENSE) 4 | [![GitHub stars](https://img.shields.io/badge/follow-guoliangdi-green.svg)](https://github.com/guoliangD/springcloudFeign/) 5 | 6 | 7 | ## 一、kubernetes link 8 | https://www.kubernetes.org.cn/course/install 9 | 10 | ### Prerequisites for the target host(演示环境安装) 11 | * host 192.168.56.60 和 192.168.56.61 机器上执行 12 | 13 | ### 1、关掉 selinux 14 | `$ setenforce 0` 15 | 16 | `$ sed -i "s/^SELINUX=enforcing/SELINUX=disabled/g" /etc/sysconfig/selinux` 17 | 18 | ### 2、关掉防火墙 19 | `$ systemctl stop firewalld` 20 | 21 | `$ systemctl disable firewalld` 22 | 23 | ### 3、关闭 swap 24 | `$ swapoff -a` 25 | 26 | `$ sed -i 's/.*swap.*/#&/' /etc/fstab` 27 | 28 | ### 4、配置转发参数 29 | `$ vi /etc/sysctl.d/k8s.conf` 30 | 31 | `net.bridge.bridge-nf-call-ip6tables = 1` 32 | 33 | `net.bridge.bridge-nf-call-iptables = 1` 34 | 35 | `$ sysctl --system` 36 | 37 | ### 5、安装一些必备的工具 38 | `$ yum install -y epel-release` 39 | 40 | `$ yum install -y net-tools wget vim ntpdate` 41 | 42 | ### 6、设置国内 yum 源 43 | `$ vi /etc/yum.repos.d/kubernetes.repo` 44 | 45 | [kubernetes] 46 | 47 | name=Kubernetes 48 | 49 | baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/ 50 | 51 | gpgcheck=0 52 | 53 | gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg 54 | 55 | enabled=1 56 | 57 | ### 7、yum makecache fast 58 | 59 | ### 8、修改主机名称和hosts 60 | (1)、 修改192.168.56.60 机器:hostnamectl set-hostname k8s-60 61 | 62 | (2)、修改192.168.56.61 机器: hostnamectl set-hostname k8s-61 63 | 64 | (3)、修改192.168.56.60和192.168.56.61 vi /etc/hosts 65 | 66 | 192.168.56.60 k8s-60 67 | 68 | 192.168.56.61 k8s-61 69 | 70 | ## 二、安装命令组件k8s 71 | 72 | ### 1、查看可安装的版本 73 | 74 | `yum list kubelet --showduplicates | sort -r` 75 | 76 | ### 2、安装kubeadm、kubectl、kubelet 77 | `$ yum install -y kubelet-1.12.1 kubeadm-1.12.1 kubectl-1.12.1 kubernetes-cni-0.6.0` 78 | 79 | `$ systemctl enable kubelet && systemctl start kubelet` 80 | 81 | ### 3、拉取k8s需要的镜像 82 | docker pull mirrorgooglecontainers/kube-apiserver:v1.12.1 83 | 84 | docker pull mirrorgooglecontainers/kube-controller-manager:v1.12.1 85 | 86 | docker pull mirrorgooglecontainers/kube-scheduler:v1.12.1 87 | 88 | docker pull mirrorgooglecontainers/kube-proxy:v1.12.1 89 | 90 | docker pull mirrorgooglecontainers/etcd-amd64:3.2.24 91 | 92 | docker pull mirrorgooglecontainers/pause-amd64:3.1 93 | 94 | docker pull mirrorgooglecontainers/etcd:3.2.24 95 | 96 | docker pull mirrorgooglecontainers/pause:3.1 97 | 98 | docker pull coredns/coredns:1.2.2 99 | 100 | docker pull registry.cn-shanghai.aliyuncs.com/gcr-k8s/flannel:v0.10.0-amd64 101 | 102 | ### 4、修改k8s需要的镜像名称 103 | docker tag mirrorgooglecontainers/kube-apiserver:v1.12.1 k8s.gcr.io/kube-apiserver:v1.12.1 104 | 105 | docker tag mirrorgooglecontainers/kube-controller-manager:v1.12.1 k8s.gcr.io/kube-controller-manager:v1.12.1 106 | 107 | docker tag mirrorgooglecontainers/kube-scheduler:v1.12.1 k8s.gcr.io/kube-scheduler:v1.12.1 108 | 109 | docker tag mirrorgooglecontainers/kube-proxy:v1.12.1 k8s.gcr.io/kube-proxy:v1.12.1 110 | 111 | docker tag mirrorgooglecontainers/etcd-amd64:3.2.24 k8s.gcr.io/etcd-amd64:3.2.24 112 | 113 | docker tag mirrorgooglecontainers/pause-amd64:3.1 k8s.gcr.io/pause-amd64:3.1 114 | 115 | docker tag mirrorgooglecontainers/etcd:3.2.24 k8s.gcr.io/etcd:3.2.24 116 | 117 | docker tag mirrorgooglecontainers/pause:3.1 k8s.gcr.io/pause:3.1 118 | 119 | docker tag coredns/coredns:1.2.2 k8s.gcr.io/coredns:1.2.2 120 | 121 | docker tag registry.cn-shanghai.aliyuncs.com/gcr-k8s/flannel:v0.10.0-amd64 quay.io/coreos/flannel:v0.10.0-amd64 122 | 123 | ### 5、删除镜像 124 | docker rmi mirrorgooglecontainers/kube-apiserver:v1.12.1 125 | 126 | docker rmi mirrorgooglecontainers/kube-controller-manager:v1.12.1 127 | 128 | docker rmi mirrorgooglecontainers/kube-scheduler:v1.12.1 129 | 130 | docker rmi mirrorgooglecontainers/kube-proxy:v1.12.1 131 | 132 | docker rmi mirrorgooglecontainers/etcd-amd64:3.2.24 133 | 134 | docker rmi mirrorgooglecontainers/pause-amd64:3.1 135 | 136 | docker rmi mirrorgooglecontainers/etcd:3.2.24 137 | 138 | docker rmi mirrorgooglecontainers/pause:3.1 139 | 140 | docker rmi coredns/coredns:1.2.2 141 | 142 | docker rmi registry.cn-shanghai.aliyuncs.com/gcr-k8s/flannel:v0.10.0-amd64 143 | 144 | ### 6、查看镜像结果 145 | `docker images | grep k8s` 146 | 147 | ![01](/bootstrap/k8s01.jpg) 148 | 149 | ### 在192.168.56.60机器上执行` 150 | 151 | ### 7、开始安装k8s 152 | ``` 153 | kubeadm init --kubernetes-version=v1.12.1 --pod-network-cidr=10.244.0.0/16 --apiserver-advertise-address=192.168.56.60 154 | ``` 155 | 156 | ![02](/bootstrap/k8s02.jpg) 157 | 158 | 执行屏幕打印出的命令 159 | 160 | mkdir -p $HOME/.kube 161 | 162 | sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config 163 | 164 | sudo chown $(id -u):$(id -g) $HOME/.kube/config 165 | 166 | ### 8、创建 flannel 网络 167 | 168 | (1) sysctl net.bridge.bridge-nf-call-iptables=1 169 | 170 | (2) wget wget https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml 171 | 172 | (3) flannel 默认会使用主机的第一张网卡,如果你有多张网卡,需要通过配置单独指定。修改 kube-flannel.yml 中的以下部分 173 | 174 | ![03](/bootstrap/k8s03.jpg) 175 | 176 | ![04](/bootstrap/k8s04.jpg) 177 | 178 | ![05](/bootstrap/k8s05.jpg) 179 | 180 | 181 | (4) 安装网络 182 | 183 | ** 手工先下载 184 | 185 | `docker pull quay.io/coreos/flannel:v0.10.0-amd64` 186 | 187 | 如果很慢可以下载 188 | 189 | `docker pull registry.cn-shenzhen.aliyuncs.com/cp_m/flannel:v0.10.0-amd64` 190 | 191 | `docker tag registry.cn-shenzhen.aliyuncs.com/cp_m/flannel:v0.10.0-amd64 quay.io/coreos/flannel:v0.10.0-amd64` 192 | 193 | ** 创建网络 kubectl apply -f kube-flannel.yml 194 | 195 | 196 | ![06](/bootstrap/k8s06.jpg) 197 | 198 | 199 | ### 在192.168.56.61机器上执行 200 | 201 | 9、192.168.56.61加入集群 202 | (1)、同样的类似192.168.56.60下载镜像 203 | 204 | 3、拉取k8s需要的镜像 205 | 206 | 4、修改k8s需要的镜像名称 207 | 208 | 5、删除镜像 209 | 210 | (2)、使用刚才在192.168.56.60创建master控制台提示加入集群命令 211 | 212 | ``` 213 | kubeadm join 192.168.56.60:6443 --token cgggwd.q5w883rkzbp44v6w --discovery-token-ca-cert-hash sha256:cae67bec80da916c8e140f4e66f2ce3aff2f8be3a8580f757cdfdfd1651337ba 214 | 215 | ``` 216 | 217 | (3)、在192.168.56.60上验证 218 | 219 | ![07](/bootstrap/k8s07.jpg) -------------------------------------------------------------------------------- /bootstrap/install-sonarqube.md: -------------------------------------------------------------------------------- 1 |

sonarqube installation

2 | 3 | [![License](https://img.shields.io/badge/license-GPL-blue.svg)](LICENSE) 4 | [![GitHub stars](https://img.shields.io/badge/follow-guoliangdi-green.svg)](https://github.com/guoliangD/springcloudFeign/) 5 | 6 | 7 | ## 一、sonar link 8 | https://www.sonarqube.org/downloads/ 9 | 10 | ### Get the LTS (Long-term Support): SonarQube 6.7.x 11 | * jdk1.8 12 | * postgresql & mysql 13 | 14 | ### step 1: 下载sonar 15 | `wget https://binaries.sonarsource.com/Distribution/sonarqube/sonarqube-6.7.6.zip` 16 | 17 | ### step 2: 启动 18 | `./sonar.sh start` 19 | 20 | ### step 3: 访问 21 | Browse to http://localhost:9000 22 | 23 | 24 | ## 二、docker安装方式 25 | https://hub.docker.com/_/sonarqube/ 26 | 27 | ### step 1: 安装postgres & sonarqube 28 | `docker pull postgres` * 依赖postgres数据库 29 | 30 | `docker pull sonarqube` 31 | 32 | ### step 2: 启动postgresql 33 | 34 | `docker run --name db -e POSTGRES_USER=sonar -e POSTGRES_PASSWORD=sonar -d postgres` 35 | 36 | `docker run --name sq --link db -e SONARQUBE_JDBC_URL=jdbc:postgresql://db:5432/sonar -p 9000:9000 -d sonarqube` 37 | 38 | * POSTGRES_USER POSTGRES_PASSWORD 指定postgresql的用户名密码 39 | 40 | ### step 3: 访问 41 | Browse to http://localhost:9000 42 | 43 | ### IMPORTANT NOTE: 44 | mvn sonar:sonar -------------------------------------------------------------------------------- /bootstrap/jenkins01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/guoliangdi/springcloudFeign/52f0a9c805bdf27eb348592d93b5f3e47bb76c59/bootstrap/jenkins01.png -------------------------------------------------------------------------------- /bootstrap/jenkins02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/guoliangdi/springcloudFeign/52f0a9c805bdf27eb348592d93b5f3e47bb76c59/bootstrap/jenkins02.png -------------------------------------------------------------------------------- /bootstrap/k8s01.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/guoliangdi/springcloudFeign/52f0a9c805bdf27eb348592d93b5f3e47bb76c59/bootstrap/k8s01.jpg -------------------------------------------------------------------------------- /bootstrap/k8s02.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/guoliangdi/springcloudFeign/52f0a9c805bdf27eb348592d93b5f3e47bb76c59/bootstrap/k8s02.jpg -------------------------------------------------------------------------------- /bootstrap/k8s03.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/guoliangdi/springcloudFeign/52f0a9c805bdf27eb348592d93b5f3e47bb76c59/bootstrap/k8s03.jpg -------------------------------------------------------------------------------- /bootstrap/k8s04.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/guoliangdi/springcloudFeign/52f0a9c805bdf27eb348592d93b5f3e47bb76c59/bootstrap/k8s04.jpg -------------------------------------------------------------------------------- /bootstrap/k8s05.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/guoliangdi/springcloudFeign/52f0a9c805bdf27eb348592d93b5f3e47bb76c59/bootstrap/k8s05.jpg -------------------------------------------------------------------------------- /bootstrap/k8s06.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/guoliangdi/springcloudFeign/52f0a9c805bdf27eb348592d93b5f3e47bb76c59/bootstrap/k8s06.jpg -------------------------------------------------------------------------------- /bootstrap/k8s07.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/guoliangdi/springcloudFeign/52f0a9c805bdf27eb348592d93b5f3e47bb76c59/bootstrap/k8s07.jpg -------------------------------------------------------------------------------- /bootstrap/tutorials.md: -------------------------------------------------------------------------------- 1 | ## 使用指南( How to get/use it) ** CI/CD **: 2 | 3 | - 1、new project by idea 4 | 5 | - 2、push project to gitlab 6 | 7 | - 3、新建 jenkins pipeline 任务 8 | 9 | 10 | ### step 1: config pipeline script 11 | 12 | ~~ 参考:Jenkinsfile.node.groovy ~~ 13 | 14 | ![jenkins01](/bootstrap/jenkins01.png) 15 | 16 | * 1.1 gitlab config webhook 17 | 18 | - Settings >> Integrations >> Webhooks 19 | 20 | ![gitlab01](/bootstrap/gitlab01.png) 21 | 22 | ![gitlab02](/bootstrap/gitlab02.png) 23 | 24 | ![gitlab03](/bootstrap/gitlab03.png) 25 | 26 | * 1.2 mvn build 27 | 28 | ~~ 参考:build-image.sh ~~ 29 | 30 | * 1.3 update pod application 31 | 32 | ~~ 参考:update-image.sh ~~ 33 | 34 | 35 | ### step 2: kubernetes new deployment 36 | 37 | ~~ 参考:main.eureka-k8s.yaml ~~ 38 | 39 | ### step 3: kubernetes service 40 | 41 | ~~ 参考:main.eureka-k8s.yaml ~~ 42 | 43 | ### 常见问题 44 | 45 | - harbor http 认证问题 46 | 47 | `vim /etc/docker/daemon.json` * 增加如下配置 48 | 49 | ``` 50 | { 51 | "registry-mirrors": ["https://harbor_ip"], 52 | "insecure-registries":["harbor_ip:harbor_port","harbor_ip"] 53 | } 54 | ``` 55 | 56 | `systemctl daemon-reload` 57 | 58 | `systemctl restart docker` 59 | 60 | - kubernetes nodeSelector 指定node不能访问pod 61 | 62 | - ps:不能指定 master node. 63 | 64 | - kubernetes deployment labels and service labels 标签不一致,不能访问 65 | 66 | - ps:deployment 和 service labels run or app 需要编写一致 67 | -------------------------------------------------------------------------------- /bootstrap/可持续集成流程图.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/guoliangdi/springcloudFeign/52f0a9c805bdf27eb348592d93b5f3e47bb76c59/bootstrap/可持续集成流程图.png -------------------------------------------------------------------------------- /bootstrap/可持续集成生态图.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/guoliangdi/springcloudFeign/52f0a9c805bdf27eb348592d93b5f3e47bb76c59/bootstrap/可持续集成生态图.png -------------------------------------------------------------------------------- /bootstrap/可持续集成示意图.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/guoliangdi/springcloudFeign/52f0a9c805bdf27eb348592d93b5f3e47bb76c59/bootstrap/可持续集成示意图.png -------------------------------------------------------------------------------- /build-image.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | set -eo pipefail 4 | 5 | TIME=`date "+%Y%m%d%H%M"` 6 | GIT_REVISION=`git log -1 --pretty=format:"%h"` 7 | REGISTRY_IP="172.20.4.27" 8 | REGISTRY_NAME="springcloudfeign" 9 | 10 | modules=( eureka-server eureka-provider eureka-consumer-feign ) 11 | 12 | for module in "${modules[@]}"; do 13 | docker build -t "${REGISTRY_IP}/${REGISTRY_NAME}/${module}:${TIME}_${GIT_REVISION}" ${module} 14 | docker push "${REGISTRY_IP}/${REGISTRY_NAME}/${module}:${TIME}_${GIT_REVISION}" 15 | 16 | 17 | done -------------------------------------------------------------------------------- /docker-compose.yml: -------------------------------------------------------------------------------- 1 | version: "3" 2 | 3 | services: 4 | 5 | eurekaService1: # 默认情况下,其他服务可以使用服务名称连接到该服务。因此,对于peer2的节点,它需要连接http://peer1:8761/eureka/,因此需要配置该服务的名称是peer1。 6 | 7 | image: gaojingyuan/eurekacluster 8 | 9 | networks: 10 | 11 | - eureka-net 12 | 13 | ports: 14 | 15 | - "8888:8888" 16 | 17 | environment: 18 | 19 | - spring.profiles.active=eurekaService1 20 | 21 | eurekaService2: 22 | 23 | image: gaojingyuan/eurekacluster 24 | 25 | networks: 26 | 27 | - eureka-net 28 | 29 | ports: 30 | 31 | - "8887:8887" 32 | 33 | environment: 34 | 35 | - spring.profiles.active=eurekaService2 36 | 37 | eurekaService3: 38 | 39 | image: gaojingyuan/eurekacluster 40 | 41 | networks: 42 | 43 | - eureka-net 44 | 45 | ports: 46 | 47 | - "8886:8886" 48 | 49 | environment: 50 | 51 | - spring.profiles.active=eurekaService3 52 | 53 | networks: 54 | 55 | eureka-net: 56 | 57 | driver: overlay 58 | -------------------------------------------------------------------------------- /eureka-consumer-feign/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/guoliangdi/springcloudFeign/52f0a9c805bdf27eb348592d93b5f3e47bb76c59/eureka-consumer-feign/.DS_Store -------------------------------------------------------------------------------- /eureka-consumer-feign/.gitignore: -------------------------------------------------------------------------------- 1 | /target/ 2 | !.mvn/wrapper/maven-wrapper.jar 3 | 4 | ### STS ### 5 | .apt_generated 6 | .classpath 7 | .factorypath 8 | .project 9 | .settings 10 | .springBeans 11 | .sts4-cache 12 | 13 | ### IntelliJ IDEA ### 14 | .idea 15 | *.iws 16 | *.iml 17 | *.ipr 18 | 19 | ### NetBeans ### 20 | /nbproject/private/ 21 | /build/ 22 | /nbbuild/ 23 | /dist/ 24 | /nbdist/ 25 | /.nb-gradle/ -------------------------------------------------------------------------------- /eureka-consumer-feign/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/guoliangdi/springcloudFeign/52f0a9c805bdf27eb348592d93b5f3e47bb76c59/eureka-consumer-feign/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /eureka-consumer-feign/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.5.4/apache-maven-3.5.4-bin.zip 2 | -------------------------------------------------------------------------------- /eureka-consumer-feign/Dockerfile: -------------------------------------------------------------------------------- 1 | # Name: eureka-consumer-feign 2 | # Time: 2018 3 | 4 | FROM java:8-jre 5 | 6 | MAINTAINER GuoliangDi 7 | 8 | RUN mkdir /app 9 | 10 | WORKDIR /app 11 | 12 | COPY ./target/eureka-consumer-feign.jar /app 13 | 14 | CMD ["java", "-Xmx200m", "-jar", "/app/eureka-consumer-feign.jar"] 15 | 16 | EXPOSE 30083 -------------------------------------------------------------------------------- /eureka-consumer-feign/main-consumer-k8s.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: extensions/v1beta1 2 | kind: Deployment 3 | metadata: 4 | name: my-consumer 5 | spec: 6 | replicas: 2 7 | template: 8 | metadata: 9 | labels: 10 | run: my-consumer 11 | spec: 12 | containers: 13 | - name: my-consumer 14 | image: 172.20.4.27/springcloudfeign/eureka-consumer-feign:201811281045_6e9377d 15 | ports: 16 | - containerPort: 30083 17 | 18 | --- 19 | apiVersion: v1 20 | kind: Service 21 | metadata: 22 | name: my-consumer 23 | labels: 24 | run: my-consumer 25 | spec: 26 | type: NodePort 27 | ports: 28 | - port: 30083 29 | targetPort: 30083 30 | nodePort: 30523 31 | selector: 32 | run: my-consumer 33 | -------------------------------------------------------------------------------- /eureka-consumer-feign/mvnw.cmd: -------------------------------------------------------------------------------- 1 | @REM ---------------------------------------------------------------------------- 2 | @REM Licensed to the Apache Software Foundation (ASF) under one 3 | @REM or more contributor license agreements. See the NOTICE file 4 | @REM distributed with this work for additional information 5 | @REM regarding copyright ownership. The ASF licenses this file 6 | @REM to you under the Apache License, Version 2.0 (the 7 | @REM "License"); you may not use this file except in compliance 8 | @REM with the License. You may obtain a copy of the License at 9 | @REM 10 | @REM http://www.apache.org/licenses/LICENSE-2.0 11 | @REM 12 | @REM Unless required by applicable law or agreed to in writing, 13 | @REM software distributed under the License is distributed on an 14 | @REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 15 | @REM KIND, either express or implied. See the License for the 16 | @REM specific language governing permissions and limitations 17 | @REM under the License. 18 | @REM ---------------------------------------------------------------------------- 19 | 20 | @REM ---------------------------------------------------------------------------- 21 | @REM Maven2 Start Up Batch script 22 | @REM 23 | @REM Required ENV vars: 24 | @REM JAVA_HOME - location of a JDK home dir 25 | @REM 26 | @REM Optional ENV vars 27 | @REM M2_HOME - location of maven2's installed home dir 28 | @REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands 29 | @REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a key stroke before ending 30 | @REM MAVEN_OPTS - parameters passed to the Java VM when running Maven 31 | @REM e.g. to debug Maven itself, use 32 | @REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 33 | @REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files 34 | @REM ---------------------------------------------------------------------------- 35 | 36 | @REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on' 37 | @echo off 38 | @REM set title of command window 39 | title %0 40 | @REM enable echoing my setting MAVEN_BATCH_ECHO to 'on' 41 | @if "%MAVEN_BATCH_ECHO%" == "on" echo %MAVEN_BATCH_ECHO% 42 | 43 | @REM set %HOME% to equivalent of $HOME 44 | if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%") 45 | 46 | @REM Execute a user defined script before this one 47 | if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre 48 | @REM check for pre script, once with legacy .bat ending and once with .cmd ending 49 | if exist "%HOME%\mavenrc_pre.bat" call "%HOME%\mavenrc_pre.bat" 50 | if exist "%HOME%\mavenrc_pre.cmd" call "%HOME%\mavenrc_pre.cmd" 51 | :skipRcPre 52 | 53 | @setlocal 54 | 55 | set ERROR_CODE=0 56 | 57 | @REM To isolate internal variables from possible post scripts, we use another setlocal 58 | @setlocal 59 | 60 | @REM ==== START VALIDATION ==== 61 | if not "%JAVA_HOME%" == "" goto OkJHome 62 | 63 | echo. 64 | echo Error: JAVA_HOME not found in your environment. >&2 65 | echo Please set the JAVA_HOME variable in your environment to match the >&2 66 | echo location of your Java installation. >&2 67 | echo. 68 | goto error 69 | 70 | :OkJHome 71 | if exist "%JAVA_HOME%\bin\java.exe" goto init 72 | 73 | echo. 74 | echo Error: JAVA_HOME is set to an invalid directory. >&2 75 | echo JAVA_HOME = "%JAVA_HOME%" >&2 76 | echo Please set the JAVA_HOME variable in your environment to match the >&2 77 | echo location of your Java installation. >&2 78 | echo. 79 | goto error 80 | 81 | @REM ==== END VALIDATION ==== 82 | 83 | :init 84 | 85 | @REM Find the project base dir, i.e. the directory that contains the folder ".mvn". 86 | @REM Fallback to current working directory if not found. 87 | 88 | set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR% 89 | IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir 90 | 91 | set EXEC_DIR=%CD% 92 | set WDIR=%EXEC_DIR% 93 | :findBaseDir 94 | IF EXIST "%WDIR%"\.mvn goto baseDirFound 95 | cd .. 96 | IF "%WDIR%"=="%CD%" goto baseDirNotFound 97 | set WDIR=%CD% 98 | goto findBaseDir 99 | 100 | :baseDirFound 101 | set MAVEN_PROJECTBASEDIR=%WDIR% 102 | cd "%EXEC_DIR%" 103 | goto endDetectBaseDir 104 | 105 | :baseDirNotFound 106 | set MAVEN_PROJECTBASEDIR=%EXEC_DIR% 107 | cd "%EXEC_DIR%" 108 | 109 | :endDetectBaseDir 110 | 111 | IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig 112 | 113 | @setlocal EnableExtensions EnableDelayedExpansion 114 | for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a 115 | @endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS% 116 | 117 | :endReadAdditionalConfig 118 | 119 | SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe" 120 | set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar" 121 | set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain 122 | 123 | set DOWNLOAD_URL="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.4.2/maven-wrapper-0.4.2.jar" 124 | FOR /F "tokens=1,2 delims==" %%A IN (%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.properties) DO ( 125 | IF "%%A"=="wrapperUrl" SET DOWNLOAD_URL=%%B 126 | ) 127 | 128 | @REM Extension to allow automatically downloading the maven-wrapper.jar from Maven-central 129 | @REM This allows using the maven wrapper in projects that prohibit checking in binary data. 130 | if exist %WRAPPER_JAR% ( 131 | echo Found %WRAPPER_JAR% 132 | ) else ( 133 | echo Couldn't find %WRAPPER_JAR%, downloading it ... 134 | echo Downloading from: %DOWNLOAD_URL% 135 | powershell -Command "(New-Object Net.WebClient).DownloadFile('%DOWNLOAD_URL%', '%WRAPPER_JAR%')" 136 | echo Finished downloading %WRAPPER_JAR% 137 | ) 138 | @REM End of extension 139 | 140 | %MAVEN_JAVA_EXE% %JVM_CONFIG_MAVEN_PROPS% %MAVEN_OPTS% %MAVEN_DEBUG_OPTS% -classpath %WRAPPER_JAR% "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" %WRAPPER_LAUNCHER% %MAVEN_CONFIG% %* 141 | if ERRORLEVEL 1 goto error 142 | goto end 143 | 144 | :error 145 | set ERROR_CODE=1 146 | 147 | :end 148 | @endlocal & set ERROR_CODE=%ERROR_CODE% 149 | 150 | if not "%MAVEN_SKIP_RC%" == "" goto skipRcPost 151 | @REM check for post script, once with legacy .bat ending and once with .cmd ending 152 | if exist "%HOME%\mavenrc_post.bat" call "%HOME%\mavenrc_post.bat" 153 | if exist "%HOME%\mavenrc_post.cmd" call "%HOME%\mavenrc_post.cmd" 154 | :skipRcPost 155 | 156 | @REM pause the script if MAVEN_BATCH_PAUSE is set to 'on' 157 | if "%MAVEN_BATCH_PAUSE%" == "on" pause 158 | 159 | if "%MAVEN_TERMINATE_CMD%" == "on" exit %ERROR_CODE% 160 | 161 | exit /B %ERROR_CODE% 162 | -------------------------------------------------------------------------------- /eureka-consumer-feign/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 4.0.0 5 | 6 | com.springcloud 7 | eureka-consumer-feign 8 | 0.0.1-SNAPSHOT 9 | jar 10 | 11 | eureka-consumer-feign 12 | Demo project for Spring Boot 13 | 14 | 15 | org.springframework.boot 16 | spring-boot-starter-parent 17 | 2.1.0.RELEASE 18 | 19 | 20 | 21 | 22 | UTF-8 23 | UTF-8 24 | 1.8 25 | Greenwich.M1 26 | 27 | 28 | 29 | 30 | org.springframework.boot 31 | spring-boot-starter-web 32 | 33 | 34 | org.springframework.cloud 35 | spring-cloud-starter-netflix-eureka-client 36 | 37 | 38 | org.springframework.cloud 39 | spring-cloud-starter-netflix-eureka-server 40 | 41 | 42 | org.springframework.cloud 43 | spring-cloud-starter-openfeign 44 | 45 | 46 | 47 | org.springframework.boot 48 | spring-boot-starter-test 49 | test 50 | 51 | 52 | 53 | 54 | 55 | 56 | org.springframework.cloud 57 | spring-cloud-dependencies 58 | ${spring-cloud.version} 59 | pom 60 | import 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | org.springframework.boot 69 | spring-boot-maven-plugin 70 | 71 | ${project.name} 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | spring-milestones 80 | Spring Milestones 81 | https://repo.spring.io/milestone 82 | 83 | false 84 | 85 | 86 | 87 | 88 | 89 | 90 | -------------------------------------------------------------------------------- /eureka-consumer-feign/src/main/java/com/springcloud/eurekaconsumerfeign/EurekaConsumerFeignApplication.java: -------------------------------------------------------------------------------- 1 | package com.springcloud.eurekaconsumerfeign; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | import org.springframework.cloud.client.discovery.EnableDiscoveryClient; 6 | import org.springframework.cloud.openfeign.EnableFeignClients; 7 | 8 | 9 | @EnableFeignClients 10 | @EnableDiscoveryClient 11 | @SpringBootApplication 12 | public class EurekaConsumerFeignApplication { 13 | 14 | public static void main(String[] args) { 15 | SpringApplication.run(EurekaConsumerFeignApplication.class, args); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /eureka-consumer-feign/src/main/java/com/springcloud/eurekaconsumerfeign/controller/ConsumerController.java: -------------------------------------------------------------------------------- 1 | package com.springcloud.eurekaconsumerfeign.controller; 2 | 3 | import com.netflix.discovery.converters.Auto; 4 | import com.springcloud.eurekaconsumerfeign.service.UserConsumer; 5 | import org.springframework.beans.factory.annotation.Autowired; 6 | import org.springframework.web.bind.annotation.GetMapping; 7 | import org.springframework.web.bind.annotation.RestController; 8 | 9 | /** 10 | * @author GuoliangDi 11 | * @Title: ConsumerController 12 | * @Description: TODO 13 | * @date 2018/11/23下午2:43 14 | */ 15 | @RestController 16 | public class ConsumerController { 17 | 18 | @Autowired 19 | private UserConsumer userConsumer; 20 | 21 | 22 | @GetMapping("/hello") 23 | public String helloClient() { 24 | 25 | String v = userConsumer.gethello(); 26 | return v; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /eureka-consumer-feign/src/main/java/com/springcloud/eurekaconsumerfeign/service/UserConsumer.java: -------------------------------------------------------------------------------- 1 | package com.springcloud.eurekaconsumerfeign.service; 2 | 3 | import org.springframework.cloud.openfeign.FeignClient; 4 | import org.springframework.web.bind.annotation.GetMapping; 5 | 6 | /** 7 | * @author GuoliangDi 8 | * @Title: UserConsumer 9 | * @Description: TODO 10 | * @date 2018/11/23下午2:45 11 | */ 12 | 13 | @FeignClient("eureka-provider")//配置服务提供者实例名称 14 | public interface UserConsumer { 15 | 16 | /** 17 | * 服务提供者路由 18 | * @return 19 | */ 20 | @GetMapping("/hello") 21 | String gethello(); 22 | } 23 | -------------------------------------------------------------------------------- /eureka-consumer-feign/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | spring.application.name=eureka-consumer 2 | server.port=30083 3 | eureka.server.port=30081 4 | 5 | #注册中心地址 6 | eureka.client.serviceUrl.defaultZone=http://my-eureka2:${eureka.server.port}/eureka/ -------------------------------------------------------------------------------- /eureka-consumer-feign/src/test/java/com/springcloud/eurekaconsumerfeign/EurekaConsumerFeignApplicationTests.java: -------------------------------------------------------------------------------- 1 | package com.springcloud.eurekaconsumerfeign; 2 | 3 | import org.junit.Test; 4 | import org.junit.runner.RunWith; 5 | import org.springframework.boot.test.context.SpringBootTest; 6 | import org.springframework.test.context.junit4.SpringRunner; 7 | 8 | @RunWith(SpringRunner.class) 9 | @SpringBootTest 10 | public class EurekaConsumerFeignApplicationTests { 11 | 12 | @Test 13 | public void contextLoads() { 14 | } 15 | 16 | } 17 | -------------------------------------------------------------------------------- /eureka-provider/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/guoliangdi/springcloudFeign/52f0a9c805bdf27eb348592d93b5f3e47bb76c59/eureka-provider/.DS_Store -------------------------------------------------------------------------------- /eureka-provider/.gitignore: -------------------------------------------------------------------------------- 1 | /target/ 2 | !.mvn/wrapper/maven-wrapper.jar 3 | 4 | ### STS ### 5 | .apt_generated 6 | .classpath 7 | .factorypath 8 | .project 9 | .settings 10 | .springBeans 11 | .sts4-cache 12 | 13 | ### IntelliJ IDEA ### 14 | .idea 15 | *.iws 16 | *.iml 17 | *.ipr 18 | 19 | ### NetBeans ### 20 | /nbproject/private/ 21 | /build/ 22 | /nbbuild/ 23 | /dist/ 24 | /nbdist/ 25 | /.nb-gradle/ -------------------------------------------------------------------------------- /eureka-provider/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/guoliangdi/springcloudFeign/52f0a9c805bdf27eb348592d93b5f3e47bb76c59/eureka-provider/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /eureka-provider/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.5.4/apache-maven-3.5.4-bin.zip 2 | -------------------------------------------------------------------------------- /eureka-provider/Dockerfile: -------------------------------------------------------------------------------- 1 | # Name: eureka-provider 2 | # Time: 2018 3 | 4 | FROM java:8-jre 5 | 6 | MAINTAINER GuoliangDi 7 | 8 | RUN mkdir /app 9 | 10 | WORKDIR /app 11 | 12 | COPY ./target/eureka-provider.jar /app 13 | 14 | CMD ["java", "-Xmx200m", "-jar", "/app/eureka-provider.jar"] 15 | 16 | EXPOSE 30082 -------------------------------------------------------------------------------- /eureka-provider/main-provider-k8s.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: extensions/v1beta1 2 | kind: Deployment 3 | metadata: 4 | name: my-provider 5 | spec: 6 | replicas: 2 7 | template: 8 | metadata: 9 | labels: 10 | run: my-provider 11 | spec: 12 | containers: 13 | - name: my-provider 14 | image: 172.20.4.27/springcloudfeign/eureka-provider:201811281252_ce6bc79 15 | #args: 16 | # - --eureka.client.serviceUrl.defaultZone=http://172.20.4.148:30201/eureka/ 17 | ports: 18 | - containerPort: 30082 19 | 20 | --- 21 | apiVersion: v1 22 | kind: Service 23 | metadata: 24 | name: my-provider 25 | labels: 26 | run: my-provider 27 | spec: 28 | type: NodePort 29 | ports: 30 | - port: 30082 31 | targetPort: 30082 32 | nodePort: 30502 33 | selector: 34 | run: my-provider 35 | -------------------------------------------------------------------------------- /eureka-provider/mvnw: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # ---------------------------------------------------------------------------- 3 | # Licensed to the Apache Software Foundation (ASF) under one 4 | # or more contributor license agreements. See the NOTICE file 5 | # distributed with this work for additional information 6 | # regarding copyright ownership. The ASF licenses this file 7 | # to you under the Apache License, Version 2.0 (the 8 | # "License"); you may not use this file except in compliance 9 | # with the License. You may obtain a copy of the License at 10 | # 11 | # http://www.apache.org/licenses/LICENSE-2.0 12 | # 13 | # Unless required by applicable law or agreed to in writing, 14 | # software distributed under the License is distributed on an 15 | # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 16 | # KIND, either express or implied. See the License for the 17 | # specific language governing permissions and limitations 18 | # under the License. 19 | # ---------------------------------------------------------------------------- 20 | 21 | # ---------------------------------------------------------------------------- 22 | # Maven2 Start Up Batch script 23 | # 24 | # Required ENV vars: 25 | # ------------------ 26 | # JAVA_HOME - location of a JDK home dir 27 | # 28 | # Optional ENV vars 29 | # ----------------- 30 | # M2_HOME - location of maven2's installed home dir 31 | # MAVEN_OPTS - parameters passed to the Java VM when running Maven 32 | # e.g. to debug Maven itself, use 33 | # set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 34 | # MAVEN_SKIP_RC - flag to disable loading of mavenrc files 35 | # ---------------------------------------------------------------------------- 36 | 37 | if [ -z "$MAVEN_SKIP_RC" ] ; then 38 | 39 | if [ -f /etc/mavenrc ] ; then 40 | . /etc/mavenrc 41 | fi 42 | 43 | if [ -f "$HOME/.mavenrc" ] ; then 44 | . "$HOME/.mavenrc" 45 | fi 46 | 47 | fi 48 | 49 | # OS specific support. $var _must_ be set to either true or false. 50 | cygwin=false; 51 | darwin=false; 52 | mingw=false 53 | case "`uname`" in 54 | CYGWIN*) cygwin=true ;; 55 | MINGW*) mingw=true;; 56 | Darwin*) darwin=true 57 | # Use /usr/libexec/java_home if available, otherwise fall back to /Library/Java/Home 58 | # See https://developer.apple.com/library/mac/qa/qa1170/_index.html 59 | if [ -z "$JAVA_HOME" ]; then 60 | if [ -x "/usr/libexec/java_home" ]; then 61 | export JAVA_HOME="`/usr/libexec/java_home`" 62 | else 63 | export JAVA_HOME="/Library/Java/Home" 64 | fi 65 | fi 66 | ;; 67 | esac 68 | 69 | if [ -z "$JAVA_HOME" ] ; then 70 | if [ -r /etc/gentoo-release ] ; then 71 | JAVA_HOME=`java-config --jre-home` 72 | fi 73 | fi 74 | 75 | if [ -z "$M2_HOME" ] ; then 76 | ## resolve links - $0 may be a link to maven's home 77 | PRG="$0" 78 | 79 | # need this for relative symlinks 80 | while [ -h "$PRG" ] ; do 81 | ls=`ls -ld "$PRG"` 82 | link=`expr "$ls" : '.*-> \(.*\)$'` 83 | if expr "$link" : '/.*' > /dev/null; then 84 | PRG="$link" 85 | else 86 | PRG="`dirname "$PRG"`/$link" 87 | fi 88 | done 89 | 90 | saveddir=`pwd` 91 | 92 | M2_HOME=`dirname "$PRG"`/.. 93 | 94 | # make it fully qualified 95 | M2_HOME=`cd "$M2_HOME" && pwd` 96 | 97 | cd "$saveddir" 98 | # echo Using m2 at $M2_HOME 99 | fi 100 | 101 | # For Cygwin, ensure paths are in UNIX format before anything is touched 102 | if $cygwin ; then 103 | [ -n "$M2_HOME" ] && 104 | M2_HOME=`cygpath --unix "$M2_HOME"` 105 | [ -n "$JAVA_HOME" ] && 106 | JAVA_HOME=`cygpath --unix "$JAVA_HOME"` 107 | [ -n "$CLASSPATH" ] && 108 | CLASSPATH=`cygpath --path --unix "$CLASSPATH"` 109 | fi 110 | 111 | # For Mingw, ensure paths are in UNIX format before anything is touched 112 | if $mingw ; then 113 | [ -n "$M2_HOME" ] && 114 | M2_HOME="`(cd "$M2_HOME"; pwd)`" 115 | [ -n "$JAVA_HOME" ] && 116 | JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`" 117 | # TODO classpath? 118 | fi 119 | 120 | if [ -z "$JAVA_HOME" ]; then 121 | javaExecutable="`which javac`" 122 | if [ -n "$javaExecutable" ] && ! [ "`expr \"$javaExecutable\" : '\([^ ]*\)'`" = "no" ]; then 123 | # readlink(1) is not available as standard on Solaris 10. 124 | readLink=`which readlink` 125 | if [ ! `expr "$readLink" : '\([^ ]*\)'` = "no" ]; then 126 | if $darwin ; then 127 | javaHome="`dirname \"$javaExecutable\"`" 128 | javaExecutable="`cd \"$javaHome\" && pwd -P`/javac" 129 | else 130 | javaExecutable="`readlink -f \"$javaExecutable\"`" 131 | fi 132 | javaHome="`dirname \"$javaExecutable\"`" 133 | javaHome=`expr "$javaHome" : '\(.*\)/bin'` 134 | JAVA_HOME="$javaHome" 135 | export JAVA_HOME 136 | fi 137 | fi 138 | fi 139 | 140 | if [ -z "$JAVACMD" ] ; then 141 | if [ -n "$JAVA_HOME" ] ; then 142 | if [ -x "$JAVA_HOME/jre/sh/java" ] ; then 143 | # IBM's JDK on AIX uses strange locations for the executables 144 | JAVACMD="$JAVA_HOME/jre/sh/java" 145 | else 146 | JAVACMD="$JAVA_HOME/bin/java" 147 | fi 148 | else 149 | JAVACMD="`which java`" 150 | fi 151 | fi 152 | 153 | if [ ! -x "$JAVACMD" ] ; then 154 | echo "Error: JAVA_HOME is not defined correctly." >&2 155 | echo " We cannot execute $JAVACMD" >&2 156 | exit 1 157 | fi 158 | 159 | if [ -z "$JAVA_HOME" ] ; then 160 | echo "Warning: JAVA_HOME environment variable is not set." 161 | fi 162 | 163 | CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher 164 | 165 | # traverses directory structure from process work directory to filesystem root 166 | # first directory with .mvn subdirectory is considered project base directory 167 | find_maven_basedir() { 168 | 169 | if [ -z "$1" ] 170 | then 171 | echo "Path not specified to find_maven_basedir" 172 | return 1 173 | fi 174 | 175 | basedir="$1" 176 | wdir="$1" 177 | while [ "$wdir" != '/' ] ; do 178 | if [ -d "$wdir"/.mvn ] ; then 179 | basedir=$wdir 180 | break 181 | fi 182 | # workaround for JBEAP-8937 (on Solaris 10/Sparc) 183 | if [ -d "${wdir}" ]; then 184 | wdir=`cd "$wdir/.."; pwd` 185 | fi 186 | # end of workaround 187 | done 188 | echo "${basedir}" 189 | } 190 | 191 | # concatenates all lines of a file 192 | concat_lines() { 193 | if [ -f "$1" ]; then 194 | echo "$(tr -s '\n' ' ' < "$1")" 195 | fi 196 | } 197 | 198 | BASE_DIR=`find_maven_basedir "$(pwd)"` 199 | if [ -z "$BASE_DIR" ]; then 200 | exit 1; 201 | fi 202 | 203 | ########################################################################################## 204 | # Extension to allow automatically downloading the maven-wrapper.jar from Maven-central 205 | # This allows using the maven wrapper in projects that prohibit checking in binary data. 206 | ########################################################################################## 207 | if [ -r "$BASE_DIR/.mvn/wrapper/maven-wrapper.jar" ]; then 208 | if [ "$MVNW_VERBOSE" = true ]; then 209 | echo "Found .mvn/wrapper/maven-wrapper.jar" 210 | fi 211 | else 212 | if [ "$MVNW_VERBOSE" = true ]; then 213 | echo "Couldn't find .mvn/wrapper/maven-wrapper.jar, downloading it ..." 214 | fi 215 | jarUrl="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.4.2/maven-wrapper-0.4.2.jar" 216 | while IFS="=" read key value; do 217 | case "$key" in (wrapperUrl) jarUrl="$value"; break ;; 218 | esac 219 | done < "$BASE_DIR/.mvn/wrapper/maven-wrapper.properties" 220 | if [ "$MVNW_VERBOSE" = true ]; then 221 | echo "Downloading from: $jarUrl" 222 | fi 223 | wrapperJarPath="$BASE_DIR/.mvn/wrapper/maven-wrapper.jar" 224 | 225 | if command -v wget > /dev/null; then 226 | if [ "$MVNW_VERBOSE" = true ]; then 227 | echo "Found wget ... using wget" 228 | fi 229 | wget "$jarUrl" -O "$wrapperJarPath" 230 | elif command -v curl > /dev/null; then 231 | if [ "$MVNW_VERBOSE" = true ]; then 232 | echo "Found curl ... using curl" 233 | fi 234 | curl -o "$wrapperJarPath" "$jarUrl" 235 | else 236 | if [ "$MVNW_VERBOSE" = true ]; then 237 | echo "Falling back to using Java to download" 238 | fi 239 | javaClass="$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.java" 240 | if [ -e "$javaClass" ]; then 241 | if [ ! -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then 242 | if [ "$MVNW_VERBOSE" = true ]; then 243 | echo " - Compiling MavenWrapperDownloader.java ..." 244 | fi 245 | # Compiling the Java class 246 | ("$JAVA_HOME/bin/javac" "$javaClass") 247 | fi 248 | if [ -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then 249 | # Running the downloader 250 | if [ "$MVNW_VERBOSE" = true ]; then 251 | echo " - Running MavenWrapperDownloader.java ..." 252 | fi 253 | ("$JAVA_HOME/bin/java" -cp .mvn/wrapper MavenWrapperDownloader "$MAVEN_PROJECTBASEDIR") 254 | fi 255 | fi 256 | fi 257 | fi 258 | ########################################################################################## 259 | # End of extension 260 | ########################################################################################## 261 | 262 | export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-"$BASE_DIR"} 263 | if [ "$MVNW_VERBOSE" = true ]; then 264 | echo $MAVEN_PROJECTBASEDIR 265 | fi 266 | MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS" 267 | 268 | # For Cygwin, switch paths to Windows format before running java 269 | if $cygwin; then 270 | [ -n "$M2_HOME" ] && 271 | M2_HOME=`cygpath --path --windows "$M2_HOME"` 272 | [ -n "$JAVA_HOME" ] && 273 | JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"` 274 | [ -n "$CLASSPATH" ] && 275 | CLASSPATH=`cygpath --path --windows "$CLASSPATH"` 276 | [ -n "$MAVEN_PROJECTBASEDIR" ] && 277 | MAVEN_PROJECTBASEDIR=`cygpath --path --windows "$MAVEN_PROJECTBASEDIR"` 278 | fi 279 | 280 | WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain 281 | 282 | exec "$JAVACMD" \ 283 | $MAVEN_OPTS \ 284 | -classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \ 285 | "-Dmaven.home=${M2_HOME}" "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \ 286 | ${WRAPPER_LAUNCHER} $MAVEN_CONFIG "$@" 287 | -------------------------------------------------------------------------------- /eureka-provider/mvnw.cmd: -------------------------------------------------------------------------------- 1 | @REM ---------------------------------------------------------------------------- 2 | @REM Licensed to the Apache Software Foundation (ASF) under one 3 | @REM or more contributor license agreements. See the NOTICE file 4 | @REM distributed with this work for additional information 5 | @REM regarding copyright ownership. The ASF licenses this file 6 | @REM to you under the Apache License, Version 2.0 (the 7 | @REM "License"); you may not use this file except in compliance 8 | @REM with the License. You may obtain a copy of the License at 9 | @REM 10 | @REM http://www.apache.org/licenses/LICENSE-2.0 11 | @REM 12 | @REM Unless required by applicable law or agreed to in writing, 13 | @REM software distributed under the License is distributed on an 14 | @REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 15 | @REM KIND, either express or implied. See the License for the 16 | @REM specific language governing permissions and limitations 17 | @REM under the License. 18 | @REM ---------------------------------------------------------------------------- 19 | 20 | @REM ---------------------------------------------------------------------------- 21 | @REM Maven2 Start Up Batch script 22 | @REM 23 | @REM Required ENV vars: 24 | @REM JAVA_HOME - location of a JDK home dir 25 | @REM 26 | @REM Optional ENV vars 27 | @REM M2_HOME - location of maven2's installed home dir 28 | @REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands 29 | @REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a key stroke before ending 30 | @REM MAVEN_OPTS - parameters passed to the Java VM when running Maven 31 | @REM e.g. to debug Maven itself, use 32 | @REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 33 | @REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files 34 | @REM ---------------------------------------------------------------------------- 35 | 36 | @REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on' 37 | @echo off 38 | @REM set title of command window 39 | title %0 40 | @REM enable echoing my setting MAVEN_BATCH_ECHO to 'on' 41 | @if "%MAVEN_BATCH_ECHO%" == "on" echo %MAVEN_BATCH_ECHO% 42 | 43 | @REM set %HOME% to equivalent of $HOME 44 | if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%") 45 | 46 | @REM Execute a user defined script before this one 47 | if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre 48 | @REM check for pre script, once with legacy .bat ending and once with .cmd ending 49 | if exist "%HOME%\mavenrc_pre.bat" call "%HOME%\mavenrc_pre.bat" 50 | if exist "%HOME%\mavenrc_pre.cmd" call "%HOME%\mavenrc_pre.cmd" 51 | :skipRcPre 52 | 53 | @setlocal 54 | 55 | set ERROR_CODE=0 56 | 57 | @REM To isolate internal variables from possible post scripts, we use another setlocal 58 | @setlocal 59 | 60 | @REM ==== START VALIDATION ==== 61 | if not "%JAVA_HOME%" == "" goto OkJHome 62 | 63 | echo. 64 | echo Error: JAVA_HOME not found in your environment. >&2 65 | echo Please set the JAVA_HOME variable in your environment to match the >&2 66 | echo location of your Java installation. >&2 67 | echo. 68 | goto error 69 | 70 | :OkJHome 71 | if exist "%JAVA_HOME%\bin\java.exe" goto init 72 | 73 | echo. 74 | echo Error: JAVA_HOME is set to an invalid directory. >&2 75 | echo JAVA_HOME = "%JAVA_HOME%" >&2 76 | echo Please set the JAVA_HOME variable in your environment to match the >&2 77 | echo location of your Java installation. >&2 78 | echo. 79 | goto error 80 | 81 | @REM ==== END VALIDATION ==== 82 | 83 | :init 84 | 85 | @REM Find the project base dir, i.e. the directory that contains the folder ".mvn". 86 | @REM Fallback to current working directory if not found. 87 | 88 | set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR% 89 | IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir 90 | 91 | set EXEC_DIR=%CD% 92 | set WDIR=%EXEC_DIR% 93 | :findBaseDir 94 | IF EXIST "%WDIR%"\.mvn goto baseDirFound 95 | cd .. 96 | IF "%WDIR%"=="%CD%" goto baseDirNotFound 97 | set WDIR=%CD% 98 | goto findBaseDir 99 | 100 | :baseDirFound 101 | set MAVEN_PROJECTBASEDIR=%WDIR% 102 | cd "%EXEC_DIR%" 103 | goto endDetectBaseDir 104 | 105 | :baseDirNotFound 106 | set MAVEN_PROJECTBASEDIR=%EXEC_DIR% 107 | cd "%EXEC_DIR%" 108 | 109 | :endDetectBaseDir 110 | 111 | IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig 112 | 113 | @setlocal EnableExtensions EnableDelayedExpansion 114 | for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a 115 | @endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS% 116 | 117 | :endReadAdditionalConfig 118 | 119 | SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe" 120 | set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar" 121 | set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain 122 | 123 | set DOWNLOAD_URL="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.4.2/maven-wrapper-0.4.2.jar" 124 | FOR /F "tokens=1,2 delims==" %%A IN (%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.properties) DO ( 125 | IF "%%A"=="wrapperUrl" SET DOWNLOAD_URL=%%B 126 | ) 127 | 128 | @REM Extension to allow automatically downloading the maven-wrapper.jar from Maven-central 129 | @REM This allows using the maven wrapper in projects that prohibit checking in binary data. 130 | if exist %WRAPPER_JAR% ( 131 | echo Found %WRAPPER_JAR% 132 | ) else ( 133 | echo Couldn't find %WRAPPER_JAR%, downloading it ... 134 | echo Downloading from: %DOWNLOAD_URL% 135 | powershell -Command "(New-Object Net.WebClient).DownloadFile('%DOWNLOAD_URL%', '%WRAPPER_JAR%')" 136 | echo Finished downloading %WRAPPER_JAR% 137 | ) 138 | @REM End of extension 139 | 140 | %MAVEN_JAVA_EXE% %JVM_CONFIG_MAVEN_PROPS% %MAVEN_OPTS% %MAVEN_DEBUG_OPTS% -classpath %WRAPPER_JAR% "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" %WRAPPER_LAUNCHER% %MAVEN_CONFIG% %* 141 | if ERRORLEVEL 1 goto error 142 | goto end 143 | 144 | :error 145 | set ERROR_CODE=1 146 | 147 | :end 148 | @endlocal & set ERROR_CODE=%ERROR_CODE% 149 | 150 | if not "%MAVEN_SKIP_RC%" == "" goto skipRcPost 151 | @REM check for post script, once with legacy .bat ending and once with .cmd ending 152 | if exist "%HOME%\mavenrc_post.bat" call "%HOME%\mavenrc_post.bat" 153 | if exist "%HOME%\mavenrc_post.cmd" call "%HOME%\mavenrc_post.cmd" 154 | :skipRcPost 155 | 156 | @REM pause the script if MAVEN_BATCH_PAUSE is set to 'on' 157 | if "%MAVEN_BATCH_PAUSE%" == "on" pause 158 | 159 | if "%MAVEN_TERMINATE_CMD%" == "on" exit %ERROR_CODE% 160 | 161 | exit /B %ERROR_CODE% 162 | -------------------------------------------------------------------------------- /eureka-provider/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 4.0.0 5 | 6 | com.springcloud 7 | eureka-provider 8 | 0.0.1-SNAPSHOT 9 | jar 10 | 11 | eureka-provider 12 | Demo project for Spring Boot 13 | 14 | 15 | org.springframework.boot 16 | spring-boot-starter-parent 17 | 2.1.0.RELEASE 18 | 19 | 20 | 21 | 22 | UTF-8 23 | UTF-8 24 | 1.8 25 | Greenwich.M1 26 | 27 | 28 | 29 | 30 | org.springframework.boot 31 | spring-boot-starter-web 32 | 33 | 34 | org.springframework.cloud 35 | spring-cloud-starter-netflix-eureka-client 36 | 37 | 38 | org.springframework.cloud 39 | spring-cloud-starter-netflix-eureka-server 40 | 41 | 42 | org.springframework.cloud 43 | spring-cloud-starter-openfeign 44 | 45 | 46 | 47 | org.springframework.boot 48 | spring-boot-starter-test 49 | test 50 | 51 | 52 | 53 | 54 | 55 | 56 | org.springframework.cloud 57 | spring-cloud-dependencies 58 | ${spring-cloud.version} 59 | pom 60 | import 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | org.springframework.boot 69 | spring-boot-maven-plugin 70 | 71 | ${project.name} 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | spring-milestones 80 | Spring Milestones 81 | https://repo.spring.io/milestone 82 | 83 | false 84 | 85 | 86 | 87 | 88 | 89 | 90 | -------------------------------------------------------------------------------- /eureka-provider/src/main/java/com/springcloud/eurekaprovider/EurekaProviderApplication.java: -------------------------------------------------------------------------------- 1 | package com.springcloud.eurekaprovider; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | import org.springframework.cloud.client.discovery.EnableDiscoveryClient; 6 | 7 | 8 | @EnableDiscoveryClient 9 | @SpringBootApplication 10 | public class EurekaProviderApplication { 11 | 12 | public static void main(String[] args) { 13 | SpringApplication.run(EurekaProviderApplication.class, args); 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /eureka-provider/src/main/java/com/springcloud/eurekaprovider/controller/ProviderController.java: -------------------------------------------------------------------------------- 1 | package com.springcloud.eurekaprovider.controller; 2 | 3 | import org.springframework.web.bind.annotation.GetMapping; 4 | import org.springframework.web.bind.annotation.RestController; 5 | 6 | /** 7 | * @author GuoliangDi 8 | * @Title: ProviderController 9 | * @Description: TODO 10 | * @date 2018/11/23下午2:41 11 | */ 12 | 13 | @RestController 14 | public class ProviderController { 15 | 16 | @GetMapping("/hello") 17 | public String gethello(){ 18 | 19 | return "this is jenkins ci print.. exe update shell(33333333);"; 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /eureka-provider/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | #指定自己实例的名称 2 | spring.application.name=eureka-provider 3 | #端口号 4 | server.port=30082 5 | 6 | eureka.server.port=30081 7 | #注册地址 8 | eureka.client.serviceUrl.defaultZone=http://172.20.4.148:30201/eureka/ -------------------------------------------------------------------------------- /eureka-provider/src/main/resources/application.yaml.bak: -------------------------------------------------------------------------------- 1 | server: 2 | port: 30081 3 | eureka: 4 | instance: 5 | hostname: ${EUREKA_HOST_NAME:peer1} #服务主机名 6 | appname: ${spring.application.name} #服务名称,默认为 unknow 这里直接取 spring.application.name 了 7 | client: 8 | register-with-eureka: ${BOOL_REGISTER:false} # 是否把服务中心本身当做eureka client 注册。默认为true 9 | fetch-registry: ${BOOL_FETCH:false} # 是否拉取 eureka server 的注册信息。 默认为true 10 | service-url: 11 | defaultZone: ${EUREKA_URL_LIST:http://peer1:30081/eureka/} # 指定服务中心 eureka server的地址 12 | server: 13 | enable-self-preservation: ${SELF_PRESERVATION:true} # 是否开启自我保护。 默认为 true. 14 | 15 | spring: 16 | application: 17 | name: ${EUREKA_APPLICATION_NAME:eureka-server} -------------------------------------------------------------------------------- /eureka-provider/src/test/java/com/springcloud/eurekaprovider/EurekaProviderApplicationTests.java: -------------------------------------------------------------------------------- 1 | package com.springcloud.eurekaprovider; 2 | 3 | import org.junit.Test; 4 | import org.junit.runner.RunWith; 5 | import org.springframework.boot.test.context.SpringBootTest; 6 | import org.springframework.test.context.junit4.SpringRunner; 7 | 8 | @RunWith(SpringRunner.class) 9 | @SpringBootTest 10 | public class EurekaProviderApplicationTests { 11 | 12 | @Test 13 | public void contextLoads() { 14 | } 15 | 16 | } 17 | -------------------------------------------------------------------------------- /eureka-server/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/guoliangdi/springcloudFeign/52f0a9c805bdf27eb348592d93b5f3e47bb76c59/eureka-server/.DS_Store -------------------------------------------------------------------------------- /eureka-server/.gitignore: -------------------------------------------------------------------------------- 1 | /target/ 2 | !.mvn/wrapper/maven-wrapper.jar 3 | 4 | ### STS ### 5 | .apt_generated 6 | .classpath 7 | .factorypath 8 | .project 9 | .settings 10 | .springBeans 11 | .sts4-cache 12 | 13 | ### IntelliJ IDEA ### 14 | .idea 15 | *.iws 16 | *.iml 17 | *.ipr 18 | 19 | ### NetBeans ### 20 | /nbproject/private/ 21 | /build/ 22 | /nbbuild/ 23 | /dist/ 24 | /nbdist/ 25 | /.nb-gradle/ -------------------------------------------------------------------------------- /eureka-server/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/guoliangdi/springcloudFeign/52f0a9c805bdf27eb348592d93b5f3e47bb76c59/eureka-server/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /eureka-server/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.5.4/apache-maven-3.5.4-bin.zip 2 | -------------------------------------------------------------------------------- /eureka-server/Dockerfile: -------------------------------------------------------------------------------- 1 | # Name: eureka-server 2 | # Time: 2018 3 | 4 | FROM java:8-jre 5 | 6 | MAINTAINER GuoliangDi 7 | 8 | RUN mkdir /app 9 | 10 | WORKDIR /app 11 | 12 | COPY ./target/eureka-server.jar /app 13 | 14 | CMD ["java", "-Xmx200m", "-jar", "/app/eureka-server.jar"] 15 | 16 | EXPOSE 30081 -------------------------------------------------------------------------------- /eureka-server/eureka-server-k8s.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: apps/v1 # for versions before 1.9.0 use apps/v1beta2 2 | kind: Deployment 3 | metadata: 4 | name: springcloud-eureka-server-deployment 5 | spec: 6 | replicas: 2 7 | template: 8 | metadata: 9 | labels: 10 | run: eureka-server-k8s 11 | spec: 12 | nodeSelector: 13 | # 指定节点生成Pod,不能指定master. 14 | kubernetes.io/hostname: node-001 15 | imagePullSecrets: 16 | # config harbor secret 17 | - name: harborsecret 18 | containers: 19 | - name: eureka-server-k8s 20 | # harbor 地址 21 | image: 172.20.4.27/springcloudfeign/eureka-server:201811261951_b47440a 22 | ports: 23 | - containerPort: 80 # docker容器端口 24 | 25 | --- 26 | apiVersion: v1 27 | kind: Service 28 | metadata: 29 | name: eureka-server-k8s 30 | labels: 31 | run: eureka-server-k8s 32 | spec: 33 | # 测试nodePort方式访问 34 | # NodePort 特点:直接开放端口(这种方式不推荐,一般用于demo) 35 | # 它指定节点上开放的端口 。如果你不指定这个端口,系统将选择一个随机端口 36 | # 大多数时候我们应该让 Kubernetes 来选择端口,因用户自己来选择可用端口代价太大 37 | type: NodePort 38 | ports: 39 | - port: 80 40 | targetPort: 80 41 | nodePort: 30001 # 节点主机端口 42 | selector: 43 | run: eureka-server-k8s -------------------------------------------------------------------------------- /eureka-server/main-eureka-k8s.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: extensions/v1beta1 2 | kind: Deployment 3 | metadata: 4 | name: my-eureka 5 | spec: 6 | replicas: 2 7 | template: 8 | metadata: 9 | labels: 10 | run: my-eureka 11 | spec: 12 | containers: 13 | - name: my-eureka 14 | image: 172.20.4.27/springcloudfeign/eureka-server:201811281252_ce6bc79 15 | ports: 16 | - containerPort: 30081 17 | 18 | --- 19 | apiVersion: v1 20 | kind: Service 21 | metadata: 22 | name: my-eureka 23 | labels: 24 | run: my-eureka 25 | spec: 26 | type: NodePort 27 | ports: 28 | - port: 30081 29 | targetPort: 30081 30 | nodePort: 30081 31 | selector: 32 | run: my-eureka 33 | -------------------------------------------------------------------------------- /eureka-server/mvnw.cmd: -------------------------------------------------------------------------------- 1 | @REM ---------------------------------------------------------------------------- 2 | @REM Licensed to the Apache Software Foundation (ASF) under one 3 | @REM or more contributor license agreements. See the NOTICE file 4 | @REM distributed with this work for additional information 5 | @REM regarding copyright ownership. The ASF licenses this file 6 | @REM to you under the Apache License, Version 2.0 (the 7 | @REM "License"); you may not use this file except in compliance 8 | @REM with the License. You may obtain a copy of the License at 9 | @REM 10 | @REM http://www.apache.org/licenses/LICENSE-2.0 11 | @REM 12 | @REM Unless required by applicable law or agreed to in writing, 13 | @REM software distributed under the License is distributed on an 14 | @REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 15 | @REM KIND, either express or implied. See the License for the 16 | @REM specific language governing permissions and limitations 17 | @REM under the License. 18 | @REM ---------------------------------------------------------------------------- 19 | 20 | @REM ---------------------------------------------------------------------------- 21 | @REM Maven2 Start Up Batch script 22 | @REM 23 | @REM Required ENV vars: 24 | @REM JAVA_HOME - location of a JDK home dir 25 | @REM 26 | @REM Optional ENV vars 27 | @REM M2_HOME - location of maven2's installed home dir 28 | @REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands 29 | @REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a key stroke before ending 30 | @REM MAVEN_OPTS - parameters passed to the Java VM when running Maven 31 | @REM e.g. to debug Maven itself, use 32 | @REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 33 | @REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files 34 | @REM ---------------------------------------------------------------------------- 35 | 36 | @REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on' 37 | @echo off 38 | @REM set title of command window 39 | title %0 40 | @REM enable echoing my setting MAVEN_BATCH_ECHO to 'on' 41 | @if "%MAVEN_BATCH_ECHO%" == "on" echo %MAVEN_BATCH_ECHO% 42 | 43 | @REM set %HOME% to equivalent of $HOME 44 | if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%") 45 | 46 | @REM Execute a user defined script before this one 47 | if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre 48 | @REM check for pre script, once with legacy .bat ending and once with .cmd ending 49 | if exist "%HOME%\mavenrc_pre.bat" call "%HOME%\mavenrc_pre.bat" 50 | if exist "%HOME%\mavenrc_pre.cmd" call "%HOME%\mavenrc_pre.cmd" 51 | :skipRcPre 52 | 53 | @setlocal 54 | 55 | set ERROR_CODE=0 56 | 57 | @REM To isolate internal variables from possible post scripts, we use another setlocal 58 | @setlocal 59 | 60 | @REM ==== START VALIDATION ==== 61 | if not "%JAVA_HOME%" == "" goto OkJHome 62 | 63 | echo. 64 | echo Error: JAVA_HOME not found in your environment. >&2 65 | echo Please set the JAVA_HOME variable in your environment to match the >&2 66 | echo location of your Java installation. >&2 67 | echo. 68 | goto error 69 | 70 | :OkJHome 71 | if exist "%JAVA_HOME%\bin\java.exe" goto init 72 | 73 | echo. 74 | echo Error: JAVA_HOME is set to an invalid directory. >&2 75 | echo JAVA_HOME = "%JAVA_HOME%" >&2 76 | echo Please set the JAVA_HOME variable in your environment to match the >&2 77 | echo location of your Java installation. >&2 78 | echo. 79 | goto error 80 | 81 | @REM ==== END VALIDATION ==== 82 | 83 | :init 84 | 85 | @REM Find the project base dir, i.e. the directory that contains the folder ".mvn". 86 | @REM Fallback to current working directory if not found. 87 | 88 | set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR% 89 | IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir 90 | 91 | set EXEC_DIR=%CD% 92 | set WDIR=%EXEC_DIR% 93 | :findBaseDir 94 | IF EXIST "%WDIR%"\.mvn goto baseDirFound 95 | cd .. 96 | IF "%WDIR%"=="%CD%" goto baseDirNotFound 97 | set WDIR=%CD% 98 | goto findBaseDir 99 | 100 | :baseDirFound 101 | set MAVEN_PROJECTBASEDIR=%WDIR% 102 | cd "%EXEC_DIR%" 103 | goto endDetectBaseDir 104 | 105 | :baseDirNotFound 106 | set MAVEN_PROJECTBASEDIR=%EXEC_DIR% 107 | cd "%EXEC_DIR%" 108 | 109 | :endDetectBaseDir 110 | 111 | IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig 112 | 113 | @setlocal EnableExtensions EnableDelayedExpansion 114 | for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a 115 | @endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS% 116 | 117 | :endReadAdditionalConfig 118 | 119 | SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe" 120 | set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar" 121 | set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain 122 | 123 | set DOWNLOAD_URL="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.4.2/maven-wrapper-0.4.2.jar" 124 | FOR /F "tokens=1,2 delims==" %%A IN (%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.properties) DO ( 125 | IF "%%A"=="wrapperUrl" SET DOWNLOAD_URL=%%B 126 | ) 127 | 128 | @REM Extension to allow automatically downloading the maven-wrapper.jar from Maven-central 129 | @REM This allows using the maven wrapper in projects that prohibit checking in binary data. 130 | if exist %WRAPPER_JAR% ( 131 | echo Found %WRAPPER_JAR% 132 | ) else ( 133 | echo Couldn't find %WRAPPER_JAR%, downloading it ... 134 | echo Downloading from: %DOWNLOAD_URL% 135 | powershell -Command "(New-Object Net.WebClient).DownloadFile('%DOWNLOAD_URL%', '%WRAPPER_JAR%')" 136 | echo Finished downloading %WRAPPER_JAR% 137 | ) 138 | @REM End of extension 139 | 140 | %MAVEN_JAVA_EXE% %JVM_CONFIG_MAVEN_PROPS% %MAVEN_OPTS% %MAVEN_DEBUG_OPTS% -classpath %WRAPPER_JAR% "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" %WRAPPER_LAUNCHER% %MAVEN_CONFIG% %* 141 | if ERRORLEVEL 1 goto error 142 | goto end 143 | 144 | :error 145 | set ERROR_CODE=1 146 | 147 | :end 148 | @endlocal & set ERROR_CODE=%ERROR_CODE% 149 | 150 | if not "%MAVEN_SKIP_RC%" == "" goto skipRcPost 151 | @REM check for post script, once with legacy .bat ending and once with .cmd ending 152 | if exist "%HOME%\mavenrc_post.bat" call "%HOME%\mavenrc_post.bat" 153 | if exist "%HOME%\mavenrc_post.cmd" call "%HOME%\mavenrc_post.cmd" 154 | :skipRcPost 155 | 156 | @REM pause the script if MAVEN_BATCH_PAUSE is set to 'on' 157 | if "%MAVEN_BATCH_PAUSE%" == "on" pause 158 | 159 | if "%MAVEN_TERMINATE_CMD%" == "on" exit %ERROR_CODE% 160 | 161 | exit /B %ERROR_CODE% 162 | -------------------------------------------------------------------------------- /eureka-server/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 4.0.0 5 | 6 | com.springcloud 7 | eureka-server 8 | 0.0.1-SNAPSHOT 9 | jar 10 | 11 | eureka-server 12 | Demo project for Spring Boot 13 | 14 | 15 | org.springframework.boot 16 | spring-boot-starter-parent 17 | 2.1.0.RELEASE 18 | 19 | 20 | 21 | 22 | UTF-8 23 | UTF-8 24 | 1.8 25 | Greenwich.M1 26 | 27 | 28 | 29 | 30 | org.springframework.boot 31 | spring-boot-starter-web 32 | 33 | 34 | org.springframework.cloud 35 | spring-cloud-starter-netflix-eureka-client 36 | 37 | 38 | org.springframework.cloud 39 | spring-cloud-starter-netflix-eureka-server 40 | 41 | 42 | org.springframework.cloud 43 | spring-cloud-starter-openfeign 44 | 45 | 46 | 47 | org.springframework.boot 48 | spring-boot-starter-test 49 | test 50 | 51 | 52 | 53 | 54 | 55 | 56 | org.springframework.cloud 57 | spring-cloud-dependencies 58 | ${spring-cloud.version} 59 | pom 60 | import 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | org.springframework.boot 69 | spring-boot-maven-plugin 70 | 71 | ${project.name} 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | spring-milestones 80 | Spring Milestones 81 | https://repo.spring.io/milestone 82 | 83 | false 84 | 85 | 86 | 87 | 88 | 89 | 90 | -------------------------------------------------------------------------------- /eureka-server/src/main/java/com/springcloud/eurekaserver/EurekaServerApplication.java: -------------------------------------------------------------------------------- 1 | package com.springcloud.eurekaserver; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer; 6 | 7 | @EnableEurekaServer 8 | @SpringBootApplication 9 | public class EurekaServerApplication { 10 | 11 | public static void main(String[] args) { 12 | SpringApplication.run(EurekaServerApplication.class, args); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /eureka-server/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | server.port=30081 2 | spring.application.name=eureka-server 3 | eureka.instance.hostname=localhost 4 | #禁用eureka注册自己 5 | eureka.client.register-with-eureka=false 6 | eureka.client.fetch-registry=false 7 | eureka.client.serviceUrl.defaultZone=http://${eureka.instance.hostname}:${server.port}/eureka/ -------------------------------------------------------------------------------- /eureka-server/src/main/resources/application.yaml.bak: -------------------------------------------------------------------------------- 1 | server: 2 | port: 30081 3 | eureka: 4 | instance: 5 | hostname: ${EUREKA_HOST_NAME:peer1} #服务主机名 6 | appname: ${spring.application.name} #服务名称,默认为 unknow 这里直接取 spring.application.name 了 7 | client: 8 | register-with-eureka: ${BOOL_REGISTER:false} # 是否把服务中心本身当做eureka client 注册。默认为true 9 | fetch-registry: ${BOOL_FETCH:false} # 是否拉取 eureka server 的注册信息。 默认为true 10 | service-url: 11 | defaultZone: ${EUREKA_URL_LIST:http://peer1:30081/eureka/} # 指定服务中心 eureka server的地址 12 | server: 13 | enable-self-preservation: ${SELF_PRESERVATION:true} # 是否开启自我保护。 默认为 true. 14 | 15 | spring: 16 | application: 17 | name: ${EUREKA_APPLICATION_NAME:eureka-server} -------------------------------------------------------------------------------- /eureka-server/src/test/java/com/springcloud/eurekaserver/EurekaServerApplicationTests.java: -------------------------------------------------------------------------------- 1 | package com.springcloud.eurekaserver; 2 | 3 | import org.junit.Test; 4 | import org.junit.runner.RunWith; 5 | import org.springframework.boot.test.context.SpringBootTest; 6 | import org.springframework.test.context.junit4.SpringRunner; 7 | 8 | @RunWith(SpringRunner.class) 9 | @SpringBootTest 10 | public class EurekaServerApplicationTests { 11 | 12 | @Test 13 | public void contextLoads() { 14 | } 15 | 16 | } 17 | -------------------------------------------------------------------------------- /pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 4.0.0 6 | 7 | com.springcloud 8 | springcloudFeign 9 | 1.0-SNAPSHOT 10 | pom 11 | springcloudFeign 12 | 13 | 14 | eureka-server 15 | eureka-provider 16 | eureka-consumer-feign 17 | 18 | 19 | 20 | 21 | 22 | 23 | org.sonarsource.scanner.maven 24 | sonar-maven-plugin 25 | 3.5.0.1254 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | -------------------------------------------------------------------------------- /springcloudFeign.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /update-image.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | set -eo pipefail 4 | 5 | REGISTRY_IP="172.20.4.27" 6 | REGISTRY_NAME="springcloudfeign" 7 | PROJECT_MODULE="eureka-provider" 8 | HOST_PWD="bitauto" 9 | HOST_USER="root" 10 | HOST_IP="172.20.4.148" 11 | 12 | 13 | K8S_UPDATE_IMAGE_VER=`docker images |grep ${REGISTRY_IP}/${REGISTRY_NAME}/${PROJECT_MODULE} |awk 'NR==1 {print $2}'` 14 | 15 | sshpass -p ${HOST_PWD} ssh -p 22 -o StrictHostKeyChecking=no ${HOST_USER}@${HOST_IP} kubectl set image deployment my-provider my-provider=${REGISTRY_IP}/${REGISTRY_NAME}/${PROJECT_MODULE}:${K8S_UPDATE_IMAGE_VER} -n default --record --------------------------------------------------------------------------------