记得上下班打卡 | git大法好,push需谨慎

Commit e1860999 authored by 董敬伟's avatar 董敬伟

Create

parent 0b828860
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.liquidnet</groupId>
<artifactId>liquidnet-bus-support</artifactId>
<version>1.0-SNAPSHOT</version>
</parent>
<artifactId>liquidnet-support-config</artifactId>
<packaging>jar</packaging>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-config-server</artifactId>
</dependency>
<!-- springcloud-bus依赖实现配置自动更新,rabbitmq -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-bus-amqp</artifactId>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
package com.liquidnet.support.config;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.cloud.config.server.EnableConfigServer;
@EnableConfigServer
@SpringBootApplication
public class SupportConfigApplication {
public static void main(String[] args) {
new SpringApplicationBuilder(SupportConfigApplication.class).run(args);
}
}
# begin-dev-这里是配置信息基本值
liquidnet:
info:
port: 7002
context: /support-config
name: liquidnet-support-config
security:
username: user
password: user123
logfile:
path: ./logs
name: support-config
eureka:
host: 127.0.0.1:7001
rabbitmq:
host: 192.168.31.205
port: 5672
username: liquidnet
password: LiquidNet!@#4
config:
location: /Users/anjiabin/myproject/gitlab_lightnet/liquidnet-bus-v1/liquidnet-bus-config/liquidnet-config
# end-dev-这里是配置信息基本值
spring:
profiles:
include: support-config
\ No newline at end of file
# begin-dev-这里是配置信息基本值
liquidnet:
info:
port: 7002
context: /support-config
name: liquidnet-support-config
security:
username: user
password: user123
logfile:
path: ./logs
name: support-config
eureka:
host: 34.92.245.187:7001
rabbitmq:
host: 34.92.245.187
port: 5672
username: lightnet
password: Lightnet12!
config:
location: /app/config
# end-dev-这里是配置信息基本值
spring:
profiles:
include: support-config
\ No newline at end of file
server:
port: ${liquidnet.info.port}
tomcat:
uri-encoding: UTF-8
servlet:
context-path: ${liquidnet.info.context}
spring:
autoconfigure:
exclude: org.springframework.boot.autoconfigure.amqp.RabbitAutoConfiguration,org.springframework.cloud.bus.BusAutoConfiguration
application:
name: ${liquidnet.info.name}
cloud:
refresh:
refreshable: none
bus:
trace:
enabled: true
config:
server:
#以下为读取本地配置方式
native:
search-locations: ${liquidnet.config.location}
## search-locations: file:///E:\projects\liquidnet-bus-v2\liquidnet-bus-config\liquidnet-config
#以下为读取远程github配置方式
# git:
# uri: git@github.com:anjiabin/lightnet-config.git
# search-paths: ./liquidnet-config
# default-label: master
# strict-host-key-checking: false
# ignore-local-ssh-settings: true
# force-pull: true
# #这个地方复制你的RSA密码,记得这里有个| 别忘了
# private-key: |
# -----BEGIN RSA PRIVATE KEY-----
# MIIJKQIBAAKCAgEAniLX1ptYvfystQeTgvsu335r6xpo4gFVxmHxebG1SoZ9KKP7
# Kg5gz5vPb7f7NwTb/5Z07oxIOyBt8P7e5oOzN13n8ErHJ3zQODDZGj1Qa9Vumfsh
# lrqk/zHthHapR0FxxVDJ27E7ElnJzVvu9gBce0qOKIb5t/FCuAV5xjlMHruBD1zT
# 3A9TRAi3ldQWCI/yShMKY0PTHLEl2nSY7BpYLWndomUr7YaHrRai62/e9ErbOzwY
# gAfDfcHEZvA60hm+64gk5O43uMQDiIeezMVXybNU2FRn/sL6obE/bqH9PRQp5h0U
# h80UJHnKCFDdRzDc7D/YdxOW7lSpDnBOe5P4uDLmmUGMk/Ktlz9mb0cb2+0v12b4
# QLZb/hLUpV5SgpBmIJKIsgD8KFhRTbY5M26yDqp/01FwM7c4hGIBevFDxCFUzyPf
# KS0lmjA0jsBdq7B56HAY2NfD5ALTbk9+eQIa3C9oOpo4PmvrwQzAFIY7Nf/ZZH/Y
# EkP97qIxiORGTcNac5LCpyerqegidnO919RBeDw/og79X3+4/3JFWBpZ/2U0rU3Y
# i5FCSWZQFi8WOo9swbxcUGq4wqjqmvkr3o9JeJQiXa90U09N6lW1SYTJT5XqWoUr
# kAfARAgagzRD+4UOOoVGAOCdsCnqlyYPD1wFgj1c5tmLKwVEFLEaxpUIS/cCAwEA
# AQKCAgBkYfXlc2OX5sezewW2xcBxew0ChxdBMFvEvPPOrnJIxqq4m6+aeNoXr+60
# GnRL7rfAvT+pFj/b2LAxpXjVl5Cyetf6/10AwghjQw7tyzI74ZZ+BJ7D0eNfY9BE
# oBbA9thDyw74eL7o3TpvNAay/nO2iBNJwrTOgUY7Dq7ImCKr95brq5+JN+lBbM8t
# Ox5pfQbu4rtbW/itY/6FeDKC3g5Pdb6Nke+ariV+SLpO/grnxIT6SyG6VDNSpygH
# uEN+j31Ugm35LQcOMM+VYZH6puMdVMttL9d8L0VuUtfTYN0iYqReQOOBeTtqFC2d
# rcdpo6j6B2Vf4X2T+QX/9ma7p6jgNV6l2c+V2cWqStd2tj8izR418C8h2STjmb7G
# bz9DRZKQ7DXPdSXjenmsBRg+QeZvRbntXBBO+EEmdogGk3/qURX9yUlAVL2xvTO0
# YdlRty//6UUuej+mQtm4uBhr4IQyNbu2MwKFqtl1d4BSzzpGWCp45TAhZfol5YP7
# vfT7uy7x+dc4jq7ZZMaf6QZqNIiKB6s/1sz1OSBlZzR84GejbZdakQag+6voMtAO
# 8I97UTh0n7sEknIbl0cU8vAv2xxYR5cpdVsDTPSvfPghxnPrcrgBxhvAKwP5QZAs
# TkU46/pLSeQZM9LHurydP7j+OIUHBhJw/mNcNApuqlvENMtTsQKCAQEAzYGciW9l
# ztpy2VvkqC2Tq+67wpntVrt1RXWv8MgDhygaGwa0sM4g1JhOBdv1wg4PtVjSL7Y1
# eAAfjJKOLkMN87MjJE7u2T0m98ERvpn9kobOSXVYhTWQHZNWopYeRuwgTqhiUxPJ
# 2tYdqE8LFxcxsLtM9hMSWPDXCxIcikkYmUev8vTgqiJ3YFo1EMFt/4Gd+zJTnoIV
# xVBek5Fp1m4/yKwZGybJOhpNqo9GgILb2W9lNNyEtJk1HumHlp+3ylDFV6nFy4yv
# FfzngzdVqtx5GPWfbZLizMoTt3pJs7kahBErPR7f3jJPxlkKQ42Gkho2bdjaDoTw
# 4QNQwJUQv/NLkwKCAQEAxP2jDyQWK278kdf5b4ykwOW4pC1hUNd7Iy+f3mlJ2htq
# JknoeKyXexNz8wrfnD5IZ8kegkP2MdRVLlleSQx3TrLlfTyzsClw4Gv+74oV6XYq
# f88n9gSh+yHrCefGshMpWZsI4vIjxkTVg2Urv8UoBYQcfNpixKS6jPuA3imzI4i4
# eBslzBI5Y0RX/BJvf7DCtZekKHSeDk79THh2Wgu/exceZ4ig9jUqP/RXtWD/bMz+
# 2LQiz+PgIsSiWBd80AvwnLQnOlWwA6hW6A5u7lUK7Lt/8Yu3McFNrrq/SjWlGQqa
# HfrtaycpOBwtdzxeZ/WQJSoKpYKWM9FLrpcrq10kjQKCAQEAxa0nJgxBoff/AZWj
# HSK6KWg6s7Xc1tD6vRW3Z6T9v8STV+vbYzbj3ZujcX9jpoZgFdCaXcqnJAb6Uf2n
# Rli50vE9nG9Q0SZBlY/hwbXedFO3mnGF9JzRQ6G2dC5ycUYwzXirG76tLBNJ89wU
# juGAqr+ACDPQMj14nO2PBnXJc6fBV7K1aPI+YjBjWvq1FFFZ5YdDZ/U5e9MTJl95
# rwnd0Om6PKPSbFFg4+9tobA+SakdcPutqwq0TkfUZM69u552NRzZZjKtODlNeKqB
# fRkWYyvhb0UbZGH9FUBMJNSo7OCW9vP744ABvIlplhFMoL0WHhO5rL2z9r15r8Wz
# lvAwgQKCAQEAozJVojeNPlJmYBUDCs0DuOMXwrvtwWGjHBVaZpHnow/PMwVL2J1z
# qX0GNDWv5usaZRETe2v+TG3SW+Gh4Pa46LQAt25QlwLeBq6xt5U4bf99WgEu4/wW
# jc0dwUkJLYH+YcO06v8bcCiako6AXhFiBJ/cUftClBK8kgvSSTtWs3uTB73F5Hi8
# nmaCVcyYHrs7s+F7GCD0yHncEzxBIHxXGAyhHbjtUMvewrkU6KkBMwvpnXIu3Pe2
# OleY/04GEv2xSsFdNlDCz2TpCrraYAyITnNPnbbYABpa1wTTcRFcQ5Cq+Wdmxbzd
# wyRk7kFPHOUtk/xucYvsD+W2w19tyDwUCQKCAQBT1tTykKRBC0wIQc8F2d5m/FdT
# FfO+ptDHNT6jdsoUwuU8Ol9wz8OW0f0oJS+OnNw7eeHLa5OmTyQ4UYW0LZ+RpwvD
# HSWJsP2+jnKvsnlyhVrRDynKDvy1i5kX286pR+6qVW2l6PQnovdZpV3U2UsJ089u
# +0Dl2Cn/9O2HO/ciR+nAuK2Qrxj6NP24sie4tFz6E5Fh/9QIvaIbwiNu5uXxKiuA
# V5NzVasUzuQizih5ggto02JwVbLkiC0jqvUk/v6avnozn+NgYL+sA3fbZo+GCkyz
# jOVPADWVH5qu4NFcOf3n7uupWK9Sj1suoR6jc/nBl9j5VFV3nWM0FDR3a6KN
# -----END RSA PRIVATE KEY-----
#以下为读取远程gitee配置方式
# git:
# uri: git@gitee.com:kowlone-new/liquidnet-bus-v1.git
# default-label: dev
# search-paths: ./liquidnet-bus-config/liquidnet-config
# strict-host-key-checking: false
# ignore-local-ssh-settings: true
# force-pull: true
# #这个地方复制你的RSA密码,记得这里有个| 别忘了
# private-key: |
# -----BEGIN RSA PRIVATE KEY-----
# MIIJKQIBAAKCAgEAzzryyijrOp90erPi2U/dun+CFtOZ0PoVZbkbE0o+yWSatQAu
# Mk/P7cfC7RsZnKynYg3XFTyKKXfMH2SBgzImePm76ds7daDh8GrZdBNxrJocN2Vh
# 7pB3RdBqwE3mafiOOQlrRHluifgPNUrqWTqqnvCoVbZOUfCYin4xwxpLEB4NR2gh
# PZVh5egKThMJns16B82R6fAW6NjS+o9iJG3VAVJsllZGLa/iwrjLSCJZWmNAgGK6
# JMmhxtkmUDK67yPlT+O5/d6WHNQ4mq2Mwzoi3bpe+LVkbejkoLLD9w1xL1gnzC3Y
# ICEK+4QKuNrPTeA2xBXIVFLWKmiMZ9+lEPFBjVxqJBM0FTitfJ1su8FcMYlLzr6/
# 7EzMApqOrmz7kuW1Dr3Js1cug0pU8rLjq+kbLUR7FpJ7B+GVju/wFF6OwyT5Bfyt
# ROSjJmeMqY6oSnXBq1Ljml4B39++uiEZRzSJrc/TVzye5dCfYjUbtglylaQ44qFL
# J0OpbiNq+kM3x6yOLS60HhMY+vbnleL6rMp2KaTI1VVUQ45PLZSlDZsGc/c6jIFw
# FcoUIdi7j4FeGJ/N2BBHoajnK00iwVES2Sm4IOnWe0N4fG8PvAFywmG5PJhNWrJ2
# udLfuZv1t0n0XSwHoJPrATUM4qAbPgaz/2EWy734FlE7mWKP+eqbm7zIC0sCAwEA
# AQKCAgEAgviyseoioS5eI57FZKsBa/licqLRuC4Wj+/pmMt32zjmPjca+1lOBO4X
# 2FskWM0WDPbKVPWqLIM2UzDmWdC8WAEeLrMMZU+E/LnLLX2MfpX391rwBiLv/wO2
# NEwHsDoTSSEW1nQY1MIeeoQakMJvS3y2J1XNMiRphD41nSVlA466vcKmH5HmCbQZ
# rzaBAgjDc2MNMVk4YXmH/ivYz0VLNkatsmZcfEuJeZ/penGbH3FTNtEu7EkzIcXk
# XRNy6ek56L/4sOaY4SePjtLZABoiJxi/JVkfXAexV48kI2QvgMiqfnUK/2Ni2Yue
# ay5/jqyCcHOD5Sdli+//rTa/0HFqB5ZKZ8QHcDDVLI88fQjIL9zd9GPaFLpoE5KG
# gEkcWi1Ux78SxySP1wstRbfXXoRiJWMgmi7xuWSPpGIetnwtdNwmJtj2JWREJQu+
# zF6RlDHLVOX14Nufg1Afifu3MlZaPlnYIps/m7SHIGevuH2DUVFp0Yjd3p5IQ3Au
# paFkfcX6nL60UO6HS7xgow78iED0S63e7MBR3xSyGJjHI/Anp5391XtK9tBHEbcr
# KilqHOdpbquSvfcTiBShYEN0jbNuLkvEAybUgTV0L7pG2DlvBbC/ds+osSR3vII6
# ta4/js5jpDdQVI3pniG5d6jE4xidS2hHe9mB3vcA04vSseeFGCECggEBAPEXC8HR
# 03Cq8TSNZ8pIsKA7BxU0/NRhqsucHnokHhO6SR57pe1QhQJKlNwuKHrgHU68keMc
# FnN67mD56JwbbHdCwEPuyB3BLrV+uD2y6YEkaW54pLP8mwisa0X9IDfzyehkbI3m
# pJzQjVnXwclIyuaCJhohg2IP0QbLrdcxI+PGPafPa5lwDWg7zJt54EDie+OVr2Bj
# L2pFDDDPiUSSu04x6jxsIRy2aYpVe0VraeQaruChXEwtlozPzKmQBl8xO4KJI4VX
# YMn/YPSQ9ICx3kazx1F39Us4rX0CFi9JznAuu1lZGwSqVpNgrZzIAtcYUx8WaaXt
# fFeulc8yNoBHzVUCggEBANwL1RuEyvBygOZuRV8AXU2/m9GA5QKCb2CfoErfviLm
# /MddPjHgl3FGgrFfHnD4hgaqrtCS1U6AoDORkmnlOmLiL3odwLlGoP6x2eVOKhNl
# hD00Dv7Kj1SxYiTZdqHsz0j46gTQY+MSaqgW4lgSKiPfNqPLedPcgHSx8+QW3OCv
# ZOzd05w+uz/UQp50RPm9IltNiRkeeP38DjAK1rE117niqeCKgaxqPeqwI5VK+fqH
# llRBK/YLMdxf+pUjJAdk5GcQuu+Z07cgl0iSFXkmbNUKoj4QyQwCtjkphkyZBdvY
# +mwcMmToEn50PsRHVh+i00SNiyO3k3teUnOIdfWtdh8CggEAAob6UZLQg5rXInTl
# BKLUbymPPnKqv9MyRiYhz6f3RL+sKoyjRaSVcFu1ycUWGYul4wBpCxdtSNKeExgr
# jw9eiLWDbHLhWCaBRdfJOKRafEcUb9sF5vkb6vBbw4UOxGdi03PSC37CdP5erPVt
# C54eumHc4mM9jFacG1UhQmM6fBXE6bBr8VTSXyhZUbvqVOPK5qzYBMulYJjOsuhK
# CRT8r6ooSW/cvP9Qhem1fBnPJ1v8P1CRth64OEupWpGu72qFtC2Z2Lj8w8FQk9+9
# IGg860LRMRJv2NUERI40C1TbvCNRRXOArADZHXxi9YTHOtf/bxD+FIYzynuDCIP/
# PEMEbQKCAQBHOXlAUApUK+v3KkhACOEqklPAS2VVG50rfF+o/KURrQyzB0ZjZJwA
# aV9SRESZMohHTiYJkw2CPHYeWwc2SaFNcoMFlu3Tyr2/0xeBdnx+DMTx/pC//hbI
# xiXLYaxZm0o5B4DQEBfU3xgw0j9vXGnRdKW9/NWxMtVNcHBOKuxRudQEK4UcNN3t
# OipaGa5d289sGDvBKrDlHRoGiOuXLqNmIqzz5kE06qqh9WN/Jmalpg+NtA6jtFnu
# SA7XCSnXTtvzVGH9vh/eTalKLybOMRbXGnsLdeltfs82z28OChXwZFoidjoFmWyr
# C7tpUuHYmZ6iuOIJrJkLPKuZg9kSrZPnAoIBAQDYXEYu50TwYmYD7Bmjl4LM7zIq
# jFbB1tIwLEV7DJ1LDLSgrsGsw+Bl6Ic3xwLOs8sml3fqjn4C8h60e5ggf/9heozn
# bE1afEbK/o9v2h41zCvLXr/0jkHWgP5WbasKdlAWPGQuYGj75AgB5pDMkPFsASTX
# qcclo3qNoGXAE4tEe+3ruFEKWN2Yo5gHbbtd5jPKdUKvEHnzLWVLpseJM6OgpmIB
# 64okv7Uik6+54j0sew8Iwh68silwrKTnitV3X0BFkTlZrurQO8ZN5iXw7UVv4uGV
# d6lGuPrzh/tkabIydaTQX84mNfY9wojMsgatgeQ6GKJc/Xt2+dCuXMB/SRj+
# -----END RSA PRIVATE KEY-----
# rabbitmq:
# addresses: ${liquidnet.rabbitmq.host}
# port: ${liquidnet.rabbitmq.port}
# username: ${liquidnet.rabbitmq.username}
# password: ${liquidnet.rabbitmq.password}
# -----------------------------------------------------------
logging:
file:
name: ${liquidnet.logfile.path}/${liquidnet.logfile.name}.log
max-size: 200MB
pattern:
file: '%d{yyyy-MM-dd HH:mm:ss.SSS} [ %-5level] %thread [%logger{96}:%line] - %msg%n'
console: '%d{yyyy-MM-dd HH:mm:ss.SSS} [ %-5level] %thread [%logger{96}:%line] - %msg%n'
rolling-file-name: ${liquidnet.logfile.path}/${liquidnet.logfile.name}-%d{yyyy-MM-dd}.%i.log
level:
root: info
#以下是为指定包设置日志级别
# com:
# liquidnet: info
# -----------------------------------------------------------
eureka:
client:
register-with-eureka: true
fetch-registry: false
serviceUrl:
defaultZone: http://${liquidnet.security.username}:${liquidnet.security.password}@${liquidnet.eureka.host}/eureka-server/eureka
instance:
hostname: ${spring.cloud.client.ip-address}
lease-expiration-duration-in-seconds: 15 #服务过期时间配置,超过这个时间没有接收到心跳EurekaServer就会将这个实例剔除
lease-renewal-interval-in-seconds: 5 #服务刷新时间配置,每隔这个时间会主动心跳一次
prefer-ip-address: true
instance-id: ${spring.application.name}:${spring.cloud.client.ip-address}:${spring.application.instance_id:${server.port}}
metadata-map:
configPath: ${server.servlet.context-path}
# management.context-path: ${server.servlet.context-path:}
## -----------------------------------------------------------
#actuator/info
info:
app:
name: ${liquidnet.info.name}
company:
name: lightnet.io
build:
groupId: '@project.groupId@'
artifactId: '@project.artifactId@'
version: '@project.version@'
# -----------------------------------------------------------
management:
endpoints:
web:
exposure:
include: bus-refresh,trace,info,health,refresh
# begin-dev-这里是配置信息基本值
liquidnet:
info:
port: 7002
context: /support-config
name: liquidnet-support-config
security:
username: user
password: user123
logfile:
path: ./logs
name: support-config
eureka:
host: 172.18.0.2:7001
rabbitmq:
host: amqps://b-4ac8a8f5-8fe2-448b-bc37-990333527213.mq.ap-southeast-1.amazonaws.com
port: 5671
username: smartnet
password: 7A8DJ48XBo4WWx6YdL
config:
location: /app/config
# end-dev-这里是配置信息基本值
spring:
profiles:
include: support-config
/$$ /$$ /$$ /$$ /$$ /$$ /$$
| $$ |__/ |__/ | $$| $$$ | $$ | $$
| $$ /$$ /$$$$$$ /$$ /$$ /$$ /$$$$$$$| $$$$| $$ /$$$$$$ /$$$$$$
| $$ | $$ /$$__ $$| $$ | $$| $$ /$$__ $$| $$ $$ $$ /$$__ $$|_ $$_/
| $$ | $$| $$ \ $$| $$ | $$| $$| $$ | $$| $$ $$$$| $$$$$$$$ | $$
| $$ | $$| $$ | $$| $$ | $$| $$| $$ | $$| $$\ $$$| $$_____/ | $$ /$$
| $$$$$$$$| $$| $$$$$$$| $$$$$$/| $$| $$$$$$$| $$ \ $$| $$$$$$$ | $$$$/
|________/|__/ \____ $$ \______/ |__/ \_______/|__/ \__/ \_______/ \___/
| $$
| $$
|__/
Application Version: ${application.version}${application.formatted-version}
Spring Boot Version: ${spring-boot.version}${spring-boot.formatted-version}
spring:
application:
name: liquidnet-support-config
profiles:
#以下为读取远程git配置方式
# active: dev
#以下为读取本地配置方式
active: native #加载本地配置时放开该注释,注意同时修改模版中native.search-locations配置
include: dev
######################
# Project Specific
######################
######################
# Node
######################
/node/**
/node_tmp/**
/node_modules/**
######################
# SASS
######################
.sass-cache/**
######################
# Eclipse
######################
*.pydevproject
.project
.metadata
/bin/**
/tmp/**
/tmp/**/*
*.tmp
*.bak
*.swp
*~.nib
local.properties
.classpath
.settings/**
.loadpath
/src/main/resources/rebel.xml
# External tool builders
.externalToolBuilders/**
# Locally stored "Eclipse launch configurations"
*.launch
# CDT-specific
.cproject
# PDT-specific
.buildpath
######################
# Intellij
######################
.idea
.idea/**
*.iml
*.iws
*.ipr
*.ids
*.orig
######################
# Maven
######################
/log/**
/target/**
######################
# Gradle
######################
.gradle/**
######################
# Package Files
######################
*.jar
*.war
*.ear
*.db
######################
# Windows
######################
# Windows image file caches
Thumbs.db
# Folder config file
Desktop.ini
######################
# Mac OSX
######################
.DS_Store
.svn
# Thumbnails
._*
# Files that might appear on external disk
.Spotlight-V100
.Trashes
######################
# Directories
######################
/build/**
/spring_loaded/**
/deploy/**
######################
# Logs
######################
*.log
######################
# Others
######################
*.class
*.*~
*~
.merge_file*
######################
# Gradle Wrapper
######################
!gradle/wrapper/gradle-wrapper.jar
######################
# Maven Wrapper
######################
!.mvn/wrapper/maven-wrapper.jar
######################
# ESLint
######################
.eslintcache
######################
# spring
######################
.springBeans
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.liquidnet</groupId>
<artifactId>liquidnet-bus-support</artifactId>
<version>1.0-SNAPSHOT</version>
</parent>
<artifactId>liquidnet-support-eureka</artifactId>
<packaging>jar</packaging>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-autoconfigure</artifactId>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
\ No newline at end of file
package com.liquidnet.support.eureka;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;
@EnableEurekaServer
@SpringBootApplication
public class SupportEurekaApplication {
public static void main(String[] args) {
SpringApplication.run(SupportEurekaApplication.class, args);
// new SpringApplicationBuilder(EurekaServer.class).run(args);
}
}
package com.liquidnet.support.eureka;
import org.springframework.context.annotation.Configuration;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
/**
* @author AnJiabin <jiabin.an@lightnet.io>
* @version V1.0
* @Description: TODO
* @class: WebSecurityConfig
* @Package com.liquidnet.service
* @Copyright: LightNet @ Copyright (c) 2020
* @date 2020/9/4 17:42
*/
@EnableWebSecurity
@Configuration
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http.csrf().disable(); //关闭csrf
super.configure(http); //开启认证
// http.authorizeRequests().anyRequest().authenticated().and().httpBasic(); //开启认证
}
}
server:
port: 7001
servlet:
context-path: /eureka-server
spring:
application:
name: liquidnet-support-eureka
security:
user:
name: user
password: user123
eureka:
instance:
hostname: 127.0.0.1
preferIpAddress: true
health-check-url: http://localhost:${server.port}${server.servlet.context-path}/actuator/health
status-page-url: http://localhost:${server.port}${server.servlet.context-path}/actuator/info
home-page-url: http://localhost:${server.port}${server.servlet.context-path}
metadata-map:
configPath: ${server.servlet.context-path}
management.context-path: ${server.servlet.context-path}
server:
enable-self-preservation: false # 设为false,关闭自我保护 #自我保护设置 解决Eureka Server不踢出已关停的节点的问题,同时客户端也需要配置
eviction-interval-timer-in-ms: 4000 # 清理间隔(单位毫秒,默认是60*1000)
client:
register-with-eureka: false #禁止自己当做服务注册
fetch-registry: false #屏蔽注册信息
serviceUrl:
defaultZone: http://${spring.security.user.name}:${spring.security.user.password}@${eureka.instance.hostname}:${server.port}${server.servlet.context-path}/eureka
# instance:
# prefer-ip-address: true
# instance-id: ${spring.application.name}:${server.port}
# hostname: localhost
liquidnet:
logfile:
path: /logfile
name: liquidnet-eureka-server.log
logging:
config: classpath:logback-spring.xml
path: ${liquidnet.logfile.path}
#logging:
# file:
# name: ${liquidnet.logfile.path}/${liquidnet.logfile.name}
# level:
# root: info
# #以下是为指定包设置日志级别
# com:
# liquidnet:
# stellar:
# controller: info
## pattern:
## console: %d{yyyy/MM/dd-HH:mm:ss} [%thread] %-5level %logger- %msg%n
## file: %d{yyyy/MM/dd-HH:mm} [%thread] %-5level %logger- %msg%n
/$$ /$$ /$$ /$$ /$$ /$$ /$$
| $$ |__/ |__/ | $$| $$$ | $$ | $$
| $$ /$$ /$$$$$$ /$$ /$$ /$$ /$$$$$$$| $$$$| $$ /$$$$$$ /$$$$$$
| $$ | $$ /$$__ $$| $$ | $$| $$ /$$__ $$| $$ $$ $$ /$$__ $$|_ $$_/
| $$ | $$| $$ \ $$| $$ | $$| $$| $$ | $$| $$ $$$$| $$$$$$$$ | $$
| $$ | $$| $$ | $$| $$ | $$| $$| $$ | $$| $$\ $$$| $$_____/ | $$ /$$
| $$$$$$$$| $$| $$$$$$$| $$$$$$/| $$| $$$$$$$| $$ \ $$| $$$$$$$ | $$$$/
|________/|__/ \____ $$ \______/ |__/ \_______/|__/ \__/ \_______/ \___/
| $$
| $$
|__/
Application Version: ${application.version}${application.formatted-version}
Spring Boot Version: ${spring-boot.version}${spring-boot.formatted-version}
<?xml version="1.0" encoding="UTF-8"?>
<!-- 日志级别从低到高分为TRACE < DEBUG < INFO < WARN < ERROR < FATAL,如果设置为WARN,则低于WARN的信息都不会输出 -->
<!-- scan:当此属性设置为true时,配置文件如果发生改变,将会被重新加载,默认值为true -->
<!-- scanPeriod:设置监测配置文件是否有修改的时间间隔,如果没有给出时间单位,默认单位是毫秒。当scan为true时,此属性生效。默认的时间间隔为1分钟。 -->
<!-- debug:当此属性设置为true时,将打印出logback内部日志信息,实时查看logback运行状态。默认值为false。 -->
<configuration scan="true" scanPeriod="10 seconds">
<!--<include resource="org/springframework/boot/logging/logback/base.xml" />-->
<contextName>logback</contextName>
<!-- name的值是变量的名称,value的值时变量定义的值。通过定义的值会被插入到logger上下文中。定义变量后,可以使“${}”来使用变量。 -->
<property name="log.path" value="./logs/eureka/" />
<!-- 彩色日志 -->
<!-- 彩色日志依赖的渲染类 -->
<conversionRule conversionWord="clr" converterClass="org.springframework.boot.logging.logback.ColorConverter" />
<conversionRule conversionWord="wex" converterClass="org.springframework.boot.logging.logback.WhitespaceThrowableProxyConverter" />
<conversionRule conversionWord="wEx" converterClass="org.springframework.boot.logging.logback.ExtendedWhitespaceThrowableProxyConverter" />
<!-- 彩色日志格式 -->
<property name="CONSOLE_LOG_PATTERN" value="${CONSOLE_LOG_PATTERN:-%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}}"/>
<!--输出到控制台-->
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
<!--此日志appender是为开发使用,只配置最底级别,控制台输出的日志级别是大于或等于此级别的日志信息-->
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>info</level>
</filter>
<encoder>
<Pattern>${CONSOLE_LOG_PATTERN}</Pattern>
<!-- 设置字符集 -->
<charset>UTF-8</charset>
</encoder>
</appender>
<!--输出到文件-->
<!-- 时间滚动输出 level为 DEBUG 日志 -->
<appender name="DEBUG_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<!-- 正在记录的日志文件的路径及文件名 -->
<file>${log.path}/log_debug.log</file>
<!--日志文件输出格式-->
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
<charset>UTF-8</charset> <!-- 设置字符集 -->
</encoder>
<!-- 日志记录器的滚动策略,按日期,按大小记录 -->
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- 日志归档 -->
<fileNamePattern>${log.path}/debug/log-debug-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>100MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
<!--日志文件保留天数-->
<maxHistory>15</maxHistory>
</rollingPolicy>
<!-- 此日志文件只记录debug级别的 -->
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>debug</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
</appender>
<!-- 时间滚动输出 level为 INFO 日志 -->
<appender name="INFO_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<!-- 正在记录的日志文件的路径及文件名 -->
<file>${log.path}/log_info.log</file>
<!--日志文件输出格式-->
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
<charset>UTF-8</charset>
</encoder>
<!-- 日志记录器的滚动策略,按日期,按大小记录 -->
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- 每天日志归档路径以及格式 -->
<fileNamePattern>${log.path}/info/log-info-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>100MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
<!--日志文件保留天数-->
<maxHistory>15</maxHistory>
</rollingPolicy>
<!-- 此日志文件只记录info级别的 -->
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>info</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
</appender>
<!-- 时间滚动输出 level为 WARN 日志 -->
<appender name="WARN_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<!-- 正在记录的日志文件的路径及文件名 -->
<file>${log.path}/log_warn.log</file>
<!--日志文件输出格式-->
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
<charset>UTF-8</charset> <!-- 此处设置字符集 -->
</encoder>
<!-- 日志记录器的滚动策略,按日期,按大小记录 -->
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${log.path}/warn/log-warn-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>100MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
<!--日志文件保留天数-->
<maxHistory>15</maxHistory>
</rollingPolicy>
<!-- 此日志文件只记录warn级别的 -->
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>warn</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
</appender>
<!-- 时间滚动输出 level为 ERROR 日志 -->
<appender name="ERROR_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<!-- 正在记录的日志文件的路径及文件名 -->
<file>${log.path}/log_error.log</file>
<!--日志文件输出格式-->
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
<charset>UTF-8</charset> <!-- 此处设置字符集 -->
</encoder>
<!-- 日志记录器的滚动策略,按日期,按大小记录 -->
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${log.path}/error/log-error-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>100MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
<!--日志文件保留天数-->
<maxHistory>15</maxHistory>
</rollingPolicy>
<!-- 此日志文件只记录ERROR级别的 -->
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>ERROR</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
</appender>
<!--
<logger>用来设置某一个包或者具体的某一个类的日志打印级别、
以及指定<appender>。<logger>仅有一个name属性,
一个可选的level和一个可选的addtivity属性。
name:用来指定受此logger约束的某一个包或者具体的某一个类。
level:用来设置打印级别,大小写无关:TRACE, DEBUG, INFO, WARN, ERROR, ALL 和 OFF,
还有一个特俗值INHERITED或者同义词NULL,代表强制执行上级的级别。
如果未设置此属性,那么当前logger将会继承上级的级别。
addtivity:是否向上级logger传递打印信息。默认是true。
-->
<!--<logger name="org.springframework.web" level="info"/>-->
<!--<logger name="org.springframework.scheduling.annotation.ScheduledAnnotationBeanPostProcessor" level="INFO"/>-->
<!--
使用mybatis的时候,sql语句是debug下才会打印,而这里我们只配置了info,所以想要查看sql语句的话,有以下两种操作:
第一种把<root level="info">改成<root level="DEBUG">这样就会打印sql,不过这样日志那边会出现很多其他消息
第二种就是单独给dao下目录配置debug模式,代码如下,这样配置sql语句会打印,其他还是正常info级别:
-->
<!--
root节点是必选节点,用来指定最基础的日志输出级别,只有一个level属性
level:用来设置打印级别,大小写无关:TRACE, DEBUG, INFO, WARN, ERROR, ALL 和 OFF,
不能设置为INHERITED或者同义词NULL。默认是DEBUG
可以包含零个或多个元素,标识这个appender将会添加到这个logger。
-->
<!--开发环境:打印控制台-->
<springProfile name="dev">
<logger name="com.liquidnet" level="debug"/>
</springProfile>
<root level="info">
<appender-ref ref="CONSOLE" />
<appender-ref ref="DEBUG_FILE" />
<appender-ref ref="INFO_FILE" />
<appender-ref ref="WARN_FILE" />
<appender-ref ref="ERROR_FILE" />
</root>
<!--生产环境:输出到文件-->
<!--<springProfile name="pro">-->
<!--<root level="info">-->
<!--<appender-ref ref="CONSOLE" />-->
<!--<appender-ref ref="DEBUG_FILE" />-->
<!--<appender-ref ref="INFO_FILE" />-->
<!--<appender-ref ref="ERROR_FILE" />-->
<!--<appender-ref ref="WARN_FILE" />-->
<!--</root>-->
<!--</springProfile>-->
</configuration>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.liquidnet</groupId>
<artifactId>liquidnet-bus-support</artifactId>
<version>1.0-SNAPSHOT</version>
</parent>
<artifactId>liquidnet-support-hystrix-dashboard</artifactId>
<packaging>jar</packaging>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-hystrix-dashboard</artifactId>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<!-- The plugin rewrites your manifest -->
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>1.5.2.RELEASE</version>
<configuration><!-- 指定该Main Class为全局的唯一入口 -->
<mainClass>com.liquidnet.cloud.HystrixDashboardApplication</mainClass>
<fork>true</fork>
<layout>ZIP</layout>
</configuration>
<executions>
<execution>
<goals>
<goal>repackage</goal><!--可以把依赖的包都打包到生成的Jar包中-->
</goals>
<!--可以生成不含依赖包的不可执行Jar包-->
<configuration>
<classifier>exec</classifier>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
</build>
</project>
package com.liquidnet.cloud;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.hystrix.dashboard.EnableHystrixDashboard;
@EnableHystrixDashboard
@SpringBootApplication
public class HystrixDashboardApplication {
public static void main(String[] args) {
SpringApplication.run(HystrixDashboardApplication.class, args);
}
}
package com.liquidnet.support.hystrix;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@EnableHystrixDashboard
@SpringBootApplication
public class SupportHystrixDashboardApplication {
public static void main(String[] args) {
SpringApplication.run(SupportHystrixDashboardApplication.class, args);
}
}
_ _ _
(_) | | (_)
_ _ _ _ __ __ _ _ _ ___ _ __ | | _ _ __ ___
| | | | | | | '_ \ / _` | | | | | / _ \ | '_ \ | | | | | '_ \ / _ \
| |_| | | | | | | | | (_| | | |_| | | (_) | | | | | | | | | | | | | | __/
\__, | |_| |_| |_| \__, | \__,_| \___/ |_| |_| |_| |_| |_| |_| \___|
__/ | __/ |
|___/ |___/
Application Version: ${application.version}${application.formatted-version}
Spring Boot Version: ${spring-boot.version}${spring-boot.formatted-version}
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.liquidnet</groupId>
<artifactId>liquidnet-bus-support</artifactId>
<version>1.0-SNAPSHOT</version>
</parent>
<artifactId>liquidnet-support-sleuth</artifactId>
<packaging>jar</packaging>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>io.zipkin.java</groupId>
<artifactId>zipkin-server</artifactId>
</dependency>
<dependency>
<groupId>io.zipkin.java</groupId>
<artifactId>zipkin-autoconfigure-ui</artifactId>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<!-- The plugin rewrites your manifest -->
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>1.4.1.RELEASE</version>
<configuration><!-- 指定该Main Class为全局的唯一入口 -->
<mainClass>com.liquidnet.cloud.SupportSleuthApplication</mainClass>
<fork>true</fork>
<layout>ZIP</layout>
</configuration>
<executions>
<execution>
<goals>
<goal>repackage</goal><!--可以把依赖的包都打包到生成的Jar包中-->
</goals>
<!--可以生成不含依赖包的不可执行Jar包-->
<configuration>
<classifier>exec</classifier>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
</build>
</project>
package com.liquidnet.cloud;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import zipkin.server.EnableZipkinServer;
@EnableZipkinServer
@SpringBootApplication
public class SleuthApplication {
public static void main(String[] args) {
SpringApplication.run(SleuthApplication.class, args);
}
}
package com.liquidnet.support.sleuth;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@EnableZipkinServer
@SpringBootApplication
public class SupportSleuthApplication {
public static void main(String[] args) {
SpringApplication.run(SupportSleuthApplication.class, args);
}
}
server:
port: 8773
spring:
application:
name: sleuthServer
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.liquidnet</groupId>
<artifactId>liquidnet-bus-support</artifactId>
<version>1.0-SNAPSHOT</version>
</parent>
<artifactId>liquidnet-support-turbine</artifactId>
<packaging>jar</packaging>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-turbine</artifactId>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<!-- The plugin rewrites your manifest -->
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>1.5.2.RELEASE</version>
<configuration><!-- 指定该Main Class为全局的唯一入口 -->
<mainClass>com.liquidnet.cloud.TurbineApplication</mainClass>
<fork>true</fork>
<layout>ZIP</layout>
</configuration>
<executions>
<execution>
<goals>
<goal>repackage</goal><!--可以把依赖的包都打包到生成的Jar包中-->
</goals>
<!--可以生成不含依赖包的不可执行Jar包-->
<configuration>
<classifier>exec</classifier>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
</build>
</project>
package com.liquidnet.cloud;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.turbine.EnableTurbine;
@EnableTurbine
@SpringBootApplication
public class TurbineApplication {
public static void main(String[] args) {
SpringApplication.run(TurbineApplication.class, args);
}
}
package com.liquidnet.cloud;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.turbine.EnableTurbine;
@EnableTurbine
@SpringBootApplication
public class TurbineApplication {
public static void main(String[] args) {
SpringApplication.run(TurbineApplication.class, args);
}
}
server:
port: 8772
spring:
application:
name: microservice-hystrix-turbine
eureka:
client:
serviceUrl:
defaultZone: http://admin:admin@127.0.0.1:8761/eureka
instance:
prefer-ip-address: true
turbine:
aggregator:
clusterConfig: liquidnet-PROVIDER-DATA,liquidnet-PROVIDER-USER,liquidnet-PROVIDER-SMS,liquidnet-PROVIDER-P2M,liquidnet-FILE-STORE
appConfig: liquidnet-provider-data,liquidnet-provider-user,liquidnet-provider-sms,liquidnet-provider-p2m,liquidnet-file-store
hystrix.config.stream.maxConcurrentConnections: 50
logging:
level:
root: INFO
com.netflix.turbine.monitor: DEBUG
_ _ _
(_) | | (_)
_ _ _ _ __ __ _ _ _ ___ _ __ | | _ _ __ ___
| | | | | | | '_ \ / _` | | | | | / _ \ | '_ \ | | | | | '_ \ / _ \
| |_| | | | | | | | | (_| | | |_| | | (_) | | | | | | | | | | | | | | __/
\__, | |_| |_| |_| \__, | \__,_| \___/ |_| |_| |_| |_| |_| |_| \___|
__/ | __/ |
|___/ |___/
Application Version: ${application.version}${application.formatted-version}
Spring Boot Version: ${spring-boot.version}${spring-boot.formatted-version}
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.liquidnet</groupId>
<artifactId>liquidnet-bus-support</artifactId>
<version>1.0-SNAPSHOT</version>
</parent>
<artifactId>liquidnet-support-zuul</artifactId>
<packaging>jar</packaging>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-zuul</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-config</artifactId>
</dependency>
</dependencies>
</project>
package com.liquidnet.support.zuul;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.cloud.netflix.zuul.EnableZuulProxy;
@EnableDiscoveryClient
@EnableZuulProxy
@SpringBootApplication
public class SupportZuulApplication {
public static void main(String[] args) {
SpringApplication.run(SupportZuulApplication.class, args);
}
}
package com.liquidnet.support.zuul.filter.error;
import com.netflix.zuul.ZuulFilter;
import com.netflix.zuul.context.RequestContext;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.cloud.netflix.zuul.filters.post.SendErrorFilter;
import org.springframework.stereotype.Component;
/**
* 从POST抛出的异常,使用该过滤器返回错误信息
*/
@Component
public class ErrorExtFilter extends SendErrorFilter {
Logger log = LoggerFactory.getLogger(ErrorExtFilter.class);
@Override
public String filterType() {
return "error";
}
@Override
public int filterOrder() {
return 30;
}
@Override
public boolean shouldFilter() {
RequestContext ctx = RequestContext.getCurrentContext();
ZuulFilter failedFilter = (ZuulFilter) ctx.get("failed.filter");
if(failedFilter != null && failedFilter.filterType().equals("post")) {
return true;
}
return false;
}
}
package com.liquidnet.support.zuul.filter.error;
import com.netflix.zuul.ZuulFilter;
import com.netflix.zuul.context.RequestContext;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component;
import javax.servlet.http.HttpServletResponse;
/**
* 捕获为处理的异常统一做一些处理,让`SendErrorFilter`可以正确的返回异常信息
* 当是`post`过滤器抛出的话,错误信息会让`ErrorExtFilter`返回异常信息
*/
@Component
public class ErrorFilter extends ZuulFilter {
Logger log = LoggerFactory.getLogger(ErrorFilter.class);
@Override
public String filterType() {
return "error";
}
@Override
public int filterOrder() {
return 20;
}
@Override
public boolean shouldFilter() {
return true;
}
@Override
public Object run() {
RequestContext ctx = RequestContext.getCurrentContext();
Throwable throwable = RequestContext.getCurrentContext().getThrowable();
log.error("this is a ErrorFilter : {}", throwable.getCause().getMessage());
ctx.set("error.status_code", HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
ctx.set("error.exception", throwable.getCause());
return null;
}
}
package com.liquidnet.support.zuul.filter.post;
import com.netflix.zuul.ZuulFilter;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component;
@Component
public class ThrowExceptionPostFilter extends ZuulFilter {
private static Logger log = LoggerFactory.getLogger(ThrowExceptionPostFilter.class);
@Override
public String filterType() {
return "post";
}
@Override
public int filterOrder() {
return 10;
}
@Override
public boolean shouldFilter() {
return true;
}
@Override
public Object run() {
log.info("This is a post filter, it will throw a RuntimeException");
doSomething();
return null;
}
private void doSomething() {
// throw new RuntimeException("Exist some errors...");
}
}
package com.liquidnet.support.zuul.filter.pre;
import com.netflix.zuul.ZuulFilter;
import com.netflix.zuul.context.RequestContext;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component;
import javax.servlet.http.HttpServletResponse;
@Component
public class ThrowExceptionFilter extends ZuulFilter {
private static Logger log = LoggerFactory.getLogger(ThrowExceptionFilter.class);
@Override
public String filterType() {
return "pre";
}
@Override
public int filterOrder() {
return 0;
}
@Override
public boolean shouldFilter() {
return true;
}
@Override
public Object run() {
log.info("This is a pre filter, it will throw a RuntimeException");
RequestContext ctx = RequestContext.getCurrentContext();
try {
doSomething();
} catch (Exception e) {
ctx.set("error.status_code", HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
ctx.set("error.exception", e);
}
return null;
}
private void doSomething() {
// throw new RuntimeException("Exist some errors...");
}
}
liquidnet:
eureka:
# serviceUrl: 127.0.0.1:7001/eureka-server/eureka
serviceUrl: 192.168.31.229:7001/eureka-server/eureka
spring:
profiles:
include: zuul
\ No newline at end of file
spring:
application:
name: liquidnet-gateway-zuul
security:
basic:
enabled: true
user:
name: user
password: user123
server:
port: 7003
server:
tomcat:
accept-count: 500
max-threads: 500
min-spare-threads: 100
max-connections: 1000
connection-timeout: 5000
eureka:
client:
healthcheck:
enabled: true
register-with-eureka: true
fetch-registry: true
serviceUrl:
# defaultZone: ${liquidnet.eureka.serviceUrl}
defaultZone: http://${spring.security.user.name}:${spring.security.user.password}@${liquidnet.eureka.serviceUrl}
instance:
hostname: ${spring.cloud.client.ip-address}
lease-expiration-duration-in-seconds: 15 #服务过期时间配置,超过这个时间没有接收到心跳EurekaServer就会将这个实例剔除
lease-renewal-interval-in-seconds: 5 #服务刷新时间配置,每隔这个时间会主动心跳一次
prefer-ip-address: true
instance-id: ${spring.application.name}:${spring.cloud.client.ip-address}:${spring.application.instance_id:${server.port}}
zuul:
prefix: /liquidnet-api
host:
max-per-route-connections: 1000
max-total-connections: 2000
routes:
liquidnet-service-adam: /adam/**
liquidnet-service-sequence: /sequence/**
liquidnet-service-example: /example/**
liquidnet-service-account: /account/**
liquidnet-service-task: /task/**
ThrowExceptionPostFilter:
post:
disable: true
#解决错误 com.netflix.client.ClientException: Load balancer does not have available server for client:panfeng-item-service
#这样就可以即指定path与URL,又不破坏Zuul的Hystrix与Ribbon特性了。
#开启eureka负载均衡策略
ribbon:
eureka:
enabled: false # 为Ribbon禁用Eureka
liquidnet-service-sequence:
ribbon:
listOfServers: 192.168.137.1:9001
logging:
level:
com.netflix: debug
#zuul:
# prefix: /api
# strip-prefix: false
spring:
profiles:
active: test
\ No newline at end of file
/$$ /$$ /$$ /$$ /$$ /$$ /$$
| $$ |__/ |__/ | $$| $$$ | $$ | $$
| $$ /$$ /$$$$$$ /$$ /$$ /$$ /$$$$$$$| $$$$| $$ /$$$$$$ /$$$$$$
| $$ | $$ /$$__ $$| $$ | $$| $$ /$$__ $$| $$ $$ $$ /$$__ $$|_ $$_/
| $$ | $$| $$ \ $$| $$ | $$| $$| $$ | $$| $$ $$$$| $$$$$$$$ | $$
| $$ | $$| $$ | $$| $$ | $$| $$| $$ | $$| $$\ $$$| $$_____/ | $$ /$$
| $$$$$$$$| $$| $$$$$$$| $$$$$$/| $$| $$$$$$$| $$ \ $$| $$$$$$$ | $$$$/
|________/|__/ \____ $$ \______/ |__/ \_______/|__/ \__/ \_______/ \___/
| $$
| $$
|__/
Application Version: ${application.version}${application.formatted-version}
Spring Boot Version: ${spring-boot.version}${spring-boot.formatted-version}
## ===================================================================
## Spring Cloud Config bootstrap configuration for the "dev" profile
## In prod profile, properties will be overwriten by the ones defined in bootstrap-prod.yml
## ===================================================================
#
#spring:
# application:
# name: liquidnet-gateway-zuul
# profiles:
# active: prod
# cloud:
# config:
# # name of the config server's property source (file.yml) that we want to use
# profile: prod # profile(s) of the property source
# label: master # toggle to switch to a different version of the configuration as stored in git
# uri: http://172.24.132.45:20001/
# # it can be set to any label, branch or commit of the config source git repository
#
## ===================================================================
## Spring Cloud Config bootstrap configuration for the "dev" profile
## In prod profile, properties will be overwriten by the ones defined in bootstrap-prod.yml
## ===================================================================
#
#spring:
# application:
# name: liquidnet-gateway-zuul
# profiles:
# active: test
# cloud:
# config:
# label: ${spring.profiles.active1:dev} #当配置文件在git上时为分支名
## profile: ${spring.profiles.active1:dev} #对应业务名称的profile
# uri: http://172.24.133.63:20001/
## discovery: # 需要考虑 eureka 地址的初始化 先不使用
## enabled: true # 默认false,设为true表示使用注册中心中的configserver配置而不自己配置configserver的uri
## serviceId: liquidnet-config-service # 指定config server在服务发现中的serviceId,默认为:configserver
#
#spring:
# application:
# name: liquidnet-gateway-zuul
# profiles:
# active: dev
# cloud:
# config:
# label: ${spring.profiles.active1:dev} #当配置文件在git上时为分支名
## profile: ${spring.profiles.active1:dev} #对应业务名称的profile
# uri: http://172.24.132.45:20001/
## discovery: # 需要考虑 eureka 地址的初始化 先不使用
## enabled: true # 默认false,设为true表示使用注册中心中的configserver配置而不自己配置configserver的uri
## serviceId: liquidnet-config-service # 指定config server在服务发现中的serviceId,默认为:configserver
<!-- Logback configuration. See http://logback.qos.ch/manual/index.html -->
<configuration scan="true" scanPeriod="10 seconds">
<!-- Simple file output -->
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<!-- encoder defaults to ch.qos.logback.classic.encoder.PatternLayoutEncoder -->
<encoder>
<pattern>
[ %-5level] [%date{yyyy-MM-dd HH:mm:ss}] %logger{96} [%line] - %msg%n
</pattern>
<charset>UTF-8</charset> <!-- 此处设置字符集 -->
</encoder>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- rollover daily 配置日志所生成的目录以及生成文件名的规则 -->
<fileNamePattern>/data/logs/YGZX/dubbo/liquidnet-gateway-zuul/liquidnet-gateway-zuul-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
<timeBasedFileNamingAndTriggeringPolicy
class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<!-- or whenever the file size reaches 64 MB -->
<maxFileSize>64 MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
</rollingPolicy>
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>DEBUG</level>
</filter>
<!-- Safely log to the same file from multiple JVMs. Degrades performance! -->
<prudent>true</prudent>
</appender>
<!-- Console output -->
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<!-- encoder defaults to ch.qos.logback.classic.encoder.PatternLayoutEncoder -->
<encoder>
<pattern>
[ %-5level] [%date{yyyy-MM-dd HH:mm:ss}] %logger{96} [%line] - %msg%n
</pattern>
<charset>UTF-8</charset> <!-- 此处设置字符集 -->
</encoder>
<!-- Only log level WARN and above -->
<!--<filter class="ch.qos.logback.classic.filter.ThresholdFilter">-->
<!--<level>WARN</level>-->
<!--</filter>-->
</appender>
<!-- Enable FILE and STDOUT appenders for all log messages.
By default, only log at level INFO and above. -->
<root level="INFO">
<appender-ref ref="FILE"/>
<appender-ref ref="STDOUT"/>
</root>
<!-- For loggers in the these namespaces, log at all levels. -->
<!--<logger name="pedestal" level="ALL"/>-->
<!--<logger name="hammock-cafe" level="ALL"/>-->
<!--<logger name="user" level="ALL"/>-->
</configuration>
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.liquidnet</groupId>
<artifactId>liquidnet-bus-support</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>pom</packaging>
<distributionManagement>
<repository>
<id>release</id>
<name>release</name>
<url>http://192.168.31.205:8081/repository/maven-releases/</url>
</repository>
<snapshotRepository>
<id>snapshots</id>
<name>snapshots</name>
<url>http://192.168.31.205:8081/repository/maven-snapshots/</url>
</snapshotRepository>
</distributionManagement>
<modules>
<module>liquidnet-support-zuul</module>
<module>liquidnet-support-config</module>
<module>liquidnet-support-eureka</module>
<!-- <module>liquidnet-support-hystrix-dashboard</module>-->
<!-- <module>liquidnet-support-turbine</module>-->
<!-- <module>liquidnet-support-sleuth</module>-->
</modules>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
</dependencies>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.2.2.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Hoxton.SR1</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<!-- https://mvnrepository.com/artifact/org.springframework.cloud/spring-cloud-starter-netflix-eureka-server -->
<!-- <dependency>-->
<!-- <groupId>org.springframework.cloud</groupId>-->
<!-- <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>-->
<!-- <version>2.2.1.RELEASE</version>-->
<!-- </dependency>-->
<!-- <dependency>-->
<!-- <groupId>org.springframework.cloud</groupId>-->
<!-- <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>-->
<!-- <version>2.2.1.RELEASE</version>-->
<!-- </dependency>-->
</dependencies>
</dependencyManagement>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>2.2.2.RELEASE</version>
<configuration>
<includeSystemScope>true</includeSystemScope><!--外部进行打包-->
</configuration>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<version>2.1</version>
<configuration>
<attach>true</attach>
</configuration>
<executions>
<execution>
<phase>compile</phase>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
<encoding>UTF-8</encoding>
<compilerArguments>
<extdirs>libs</extdirs>
</compilerArguments>
</configuration>
</plugin>
</plugins>
</build>
</project>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment