# springcloud-demo **Repository Path**: helixin/springcloud-demo ## Basic Information - **Project Name**: springcloud-demo - **Description**: No description available - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2019-11-06 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # pps-cloud this project is a spring cloud project,spring cloud is micro services framework the ``eureka`` is register center,``factory-api,job,pps-service-support-zipkin-server,configeserver`` will reg to eureka when them running up.so you can use ``eureka`` http page to manage and check all of them status. the jdk verion ``java SE Developement kit 8u172`` or you can just prepared a JDK8+ it can work. the gradle verion ``gradle 3.0-rc-2`` the tomcat version ``tomcat8`` # Usage all module you can build via docker and running them by docker. eureka this project for register center server. ``` FROM frolvlad/alpine-oraclejdk8:slim ENV TZ=Asia/Shanghai RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone VOLUME /tmp ADD eureka.jar app.jar RUN sh -c 'touch /app.jar' ENV JAVA_OPTS="-Xms128m -Xmx256m" ENTRYPOINT [ "sh", "-c", "java $JAVA_OPTS -Djava.security.egd=file:/dev/./urandom -jar /app.jar" ] EXPOSE 8761 ``` factory-api this project for ``pps project``,the pps project will publish to factory and allow pps request pps-cloud apis. when you running it you can visit ``swagger2 via http://ip:port/swagger-ui.html`` checking all restful apis and do some endpoint testing. ``` FROM frolvlad/alpine-oraclejdk8:slim ENV TZ=Asia/Shanghai RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone VOLUME /tmp ADD factory-api.jar app.jar RUN sh -c 'touch /app.jar' ENV JAVA_OPTS="-Xms128m -Xmx512m" ENTRYPOINT [ "sh", "-c", "java $JAVA_OPTS -Djava.security.egd=file:/dev/./urandom -jar /app.jar" ] EXPOSE 8764 ``` job this project support some apis for job push data from factory. when you running it you can visit ``swagger2 via http://ip:port/swagger-ui.html`` checking all restful apis and do some endpoint testing. ``` FROM frolvlad/alpine-oraclejdk8:slim ENV TZ=Asia/Shanghai RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone VOLUME /tmp ADD job.jar app.jar RUN sh -c 'touch /app.jar' ENV JAVA_OPTS="-Xms128m -Xmx250m" ENTRYPOINT [ "sh", "-c", "java $JAVA_OPTS -Djava.security.egd=file:/dev/./urandom -jar /app.jar" ] EXPOSE 8755 ``` pps-service this project is backend of pps-factory,pps-service can query data from database and cache data to redis. when you running it you can visit ``swagger2 via http://ip:port/swagger-ui.html`` checking all restful apis and do some endpoint testing. ``` FROM frolvlad/alpine-oraclejdk8:slim ENV TZ=Asia/Shanghai RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone VOLUME /tmp ADD pps-service.jar app.jar RUN sh -c 'touch /app.jar' ENV JAVA_OPTS="-Xms128m -Xmx512m" ENTRYPOINT [ "sh", "-c", "java $JAVA_OPTS -Djava.security.egd=file:/dev/./urandom -jar /app.jar" ] EXPOSE 8762 ``` support this project support international version,you can add many languages and different user use different lanuage the page will automatic change to local native.we use database storage all data. when you running it you can visit ``swagger2 via http://ip:port/swagger-ui.html`` checking all restful apis and do some endpoint testing. ``` FROM frolvlad/alpine-oraclejdk8:slim ENV TZ=Asia/Shanghai RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone VOLUME /tmp ADD support.jar app.jar RUN sh -c 'touch /app.jar' ENV JAVA_OPTS="-Xms128m -Xmx250m" ENTRYPOINT [ "sh", "-c", "java $JAVA_OPTS -Djava.security.egd=file:/dev/./urandom -jar /app.jar" ] EXPOSE 8756 ``` zipkin-server ``` FROM frolvlad/alpine-oraclejdk8:slim ENV TZ=Asia/Shanghai RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone VOLUME /tmp ADD zipkin-server.jar app.jar RUN sh -c 'touch /app.jar' ENV JAVA_OPTS="-Xms50m -Xmx128m" ENTRYPOINT [ "sh", "-c", "java $JAVA_OPTS -Djava.security.egd=file:/dev/./urandom -jar /app.jar" ] EXPOSE 9411 ``` you can use ``docker build -t `` to build a docker image and push it to dockerhub or yourself repository also you can use ``` docker run -d --name eureka -p 8761:8761 --restart always [docker image path] docker run -d --name factory-api -p 8764:8764 --restart always [docker image path] docker run -d --name job -p 8755:8755 --restart always [docker image path] docker run -d --name pps-service -p 8762:8762 --restart always [docker image path] docker run -d --name support -p 8756:8756 --restart always [docker image path] docker run -d --name zipkin-server -p 9411:9411 --restart always [docker image path] ``` checking logs: ``` docker logs --tail 1000 -f eureka docker logs --tail 1000 -f factory-api docker logs --tail 1000 -f job docker logs --tail 1000 -f pps-service docker logs --tail 1000 -f support docker logs --tail 1000 -f zipkin-server ``` the project depend on mysql,redis server so you have to prepare them,you can try docker and quick running them. # mysql you can use docker image quick running a mysql or mariadb you can try: ``` docker search mariadb docker pull mariadb docker run -p 3306:3306 -e MYSQL_ROOT_PASSWORD=Pitop@20180814pi-top.Com --name mariadb --restart always -d mariadb ``` checking logs: ``` docker logs --tail 1000 -f mariadb ``` You just need copy it and connect mysql and runing the sql script you will get a database. you can use below commands to build a database for this project ``` create database pps_cloud; use pps_cloud; source /home/pps_cloud.sql; ``` # redis this project depend on ``redis`` so you have to prepare a redis server for it. you can use docker quick running a docker instance like: ``` docker search redis docker pull redis docker run -p 6379:6379 --name redis --restart always -d redis redis-server --appendonly yes ``` when you prepared ``redis,mysql`` you have to change the file ``application.yml`` some options, you can find the file via this path ``pps-service/src/main/resources/application.yml``. open it you need change the options: #### mysql: ``` url: jdbc:mysql://192.168.1.220:3306/pps_cloud?useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=round&allowMultiQueries=true&serverTimezone=GMT%2B8 username: root password: mysqladmin ``` changing the ``192.168.1.220:3306`` to your real mysql server ip.(the ip cloud use intranet ip or public ip) you must set a username and password ,remember the password should be very strong. #### redis ``` host: 192.168.1.220 port: 6379 password: Redis-Pitop@pi-top.Com:2019:Sandbox ``` changing the ``192.168.1.220`` to your real redis server ip.(the ip cloud use intranet ip or public ip) the default port is 6379 but,suggesting to change it other and set very strong password for redis. all projects try use jenkins and docker running them. # The diagram of pps-cloud #### The pps,pps-cloud architecture: ![Image text](https://github.com/pi-top/pps-cloud/blob/master/images/architecture.jpg) #### The frameworks of pps-cloud: ![Image text](https://github.com/pi-top/pps-cloud/blob/master/images/pps-cloud-skills.jpg) #### The data from factory local database sync to pps-cloud database: ![Image text](https://github.com/pi-top/pps-cloud/blob/master/images/pps-sync-data-to-pps-cloud.jpg) #### The data models: ![Image text](https://github.com/pi-top/pps-cloud/blob/master/images/pps-cloud-datamodels.jpg)