Microservice environment deployment

zookeeper

zookeeper installation configuration

  • Download the installation package of zookeeper from the official website: zookeeper image download website recommended by the official website
  • Unzip the zipped package of zookeeper to the specified installation directory
  • Create a new data and log folder in the zookeeper installation directory, and the zoo in the conf directory_ sample. Cfg file, copy it and rename it zoo CFG, in zoo Configure ticktime, dataDir and datalogdir in CFG
# The number of milliseconds of each tick
tickTime=2000
# The number of ticks that the initial 
# synchronization phase can take
#initLimit=10
# The number of ticks that can pass between 
# sending a request and getting an acknowledgement
#syncLimit=5
# the directory where the snapshot is stored.
# do not use /tmp for storage, /tmp here is just 
# example sakes.
dataDir=E:\JetBrains\zookeeper-3.4.10\data
dataLogDir=E:\JetBrains\zookeeper-3.4.10\log
# the port at which the clients will connect
clientPort=2181
# the maximum number of client connections.
# increase this if you need to handle more clients
#maxClientCnxns=60
#
# Be sure to read the maintenance section of the 
# administrator guide before turning on autopurge.
#
# http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance
#
# The number of snapshots to retain in dataDir
#autopurge.snapRetainCount=3
# Purge task interval in hours
# Set to "0" to disable auto purge feature
#autopurge.purgeInterval=1

Note: description of each configuration attribute

tickTime: This time is as Zookeeper The time interval between servers or between clients and servers to maintain heartbeat, that is, each tickTime Time will send a heartbeat.
initLimit: This configuration item is used to configure Zookeeper Accept client (the client mentioned here is not a user connection) Zookeeper The client of the server, but Zookeeper Connect to in the server cluster Leader of Follower The maximum number of heartbeat intervals that the server can tolerate when initializing a connection. When the time has exceeded 10 heartbeats (i.e tickTime)After length Zookeeper If the server has not received the return information from the client, it indicates that the client connection has failed. The total length of time is 5*2000=10 second
syncLimit: This configuration item ID Leader And Follower How many messages can you send between, request and reply tickTime The total length of time is 2*2000=4 second
dataDir: As the name suggests Zookeeper The directory where data is saved. By default, Zookeeper Save the log file for writing data in this directory.
clientPort: This port is the client connection Zookeeper Port of the server, Zookeeper It will listen to this port and accept the access request of the client.
  • Configure environment variables
1.Add system variable ZOOKEEPER_HOME:E:\JetBrains\zookeeper-3.4.10
2.New in Path variable Path:%ZOOKEEPER_HOME%/bin;%ZOOKEEPER_HOME%/conf
  • Click zkserver.com in E:\JetBrains\zookeeper-3.4.10\bin directory CMD runs zookeeper successfully

zookeeper running problem

  • On my working computer, I have configured the windows batch processing tool in zookeeper. Just click RUN to complete all the configuration and RUN:
  • You need to learn the windows batch processing tool in the future

node.js(npm)

node.js(npm) installation configuration

  • Download node.com from the official website JS installation package: node.js official website download
  • Double click the installation package to start installing node js
  • node. After JS installation, open the cmd window and enter node -v,npm -v to test node JS installed successfully
C:\Users\Chova>node -v
C:\Users\Chova>npm -v
  • node. Configuration of npm in JS: in node Create node under JS installation directory_ Cache and node_global folder, set as the global installation location and cache location Open the cmd command window and enter
npm config set prefix  E:\JetBrains\nodejs\node_global  
npm config set cache E:\JetBrains\nodejs\node_cache
  • Configure node JS environment variable
1.New under system variable NODE_PATH ,input E:\JetBrains\nodej\node_global\node_modules
2.Set the Path Change to E:\JetBrains\nodej\node_global

node.js(npm) running problem

  • in use
npm start

Problem 1: run node JS project, the following error is reported

A complete log of this run can be found in:
C:\Users\56386\AppData\Roaming\npm-cache\_logs\2019-04-26T02_09_33_735Z-debug.log
  • terms of settlement:
npm i npm -g	Global Update

perhaps

npm cache clean --force		Clean and reinstall

perhaps

npm install webpack --save		Force installation dependency

Problem 2: there is a webpack prompt when running, and the webpack plug-in is missing

  • terms of settlement:
npm install webpack@3.6.0 -g

npm i optimize-css-assets-webpack-plugin@3.2.0

If the solution is successful, in package There will be "webpack": "^3.6.0" in dependencies in JSON. If there are still no related dependencies, it will be executed finally

npm install webpack --save		# Force installation dependency

redis

redis installation configuration

  • Download version 3.2 redis installation package from GitHub: redis
  • After installation, the redis service is enabled by default You can also enter the startup command in the cmd window
C:\Users\Chova>redis-server.exe

Because 6379 redis services have been used by default, you need to turn off the redis service in windows services when you start redis using cmd window

  • Introduction to various files in redis
redis-server.exe: Server program, providing redis service
redis-cli.exe: Client program through which to connect redis Service and operation
redis-check-dump.exe: Local database check
redis-check-aof.exe: Update log check
redis-benchmark.exe: Performance test to simulate simultaneous N Client send M individual SETs/GETs query (be similar to Apache of ab tool).
redis.windows.conf: Profile, will redis As a configuration used by ordinary software, if the command line is closed redis close
redis.windows-service.conf: Profile, will redis As the configuration of system services, it is used to distinguish two different usage modes

redis running problem

  • If redis is installed in a compressed package, you need to enter:
redis-server.exe redis.windows.conf
  • adopt
redis-server.exe redis.windows.conf

mongodb

mongodb installation configuration

  • Download mongdb installation package from the official website: mongodb official website , Download windows64 bit: win64-mongodbb
  • Double click the mongodb installation package to install it to the specified directory
  • Configure mongodb environment variable
  • Simple introduction to mongodb
mongo   Use database
mongod  Power on
mongoimport  Import data

Boot command:(After startup,this cmd The window remains like this)
mongod --dpath c:\mongo

Open a new one cmd Window input:
mongo

Run database syntax:
show dbs	List all databases
use dbname	Use database
db			View the current database
db.dbname.insert({});	insert data
db.dropDatabase();		Delete the database and delete the current database

db.restaurants.find();	Find data with find. find If there are no parameters in, all documents in this collection will be listed
db.dbname.find({"score.shuxue":70});	Exact match
db.dbname.find({"score.shuxue":70 , "age":12});		Multiple conditions
db.dbname.find({"score.yuwen":{$gt:50}});			Greater than condition	
db.dbname.find({$or:[{"age":9},{"age":11}]});		Look for anyone who is 9 or 11 years old
db.dbname.find().sort({ "borough": 1, "address.zipcode": 1 })	After the search is completed, the dot call sort,Indicates ascending and descending sorting

db.dbname.update({"name":"Xiao Ming"},{$set:{"age":16}});			Find the one named Xiao Ming and change the age to 16
db.dbname.update({"score.shuxue":70},{$set:{"age":33}});		Find that your math score is 70 and change your age to 33
db.dbname.update({"sex":"male"},{$set:{"age":33}},{multi: true});	Change all matching items
db.restaurants.remove( { "borough": "Manhattan" } );			Delete data

maven configuration

  • maven configuration in IDEA is configured as local maven
  • Configure maven's profile
E:\JetBrains\maven\apache-maven-3.6.1\conf\settings.xml
<?xml version="1.0" encoding="UTF-8"?>

<!--
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements.  See the NOTICE file
distributed with this work for additional information
regarding copyright ownership.  The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License.  You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied.  See the License for the
specific language governing permissions and limitations
under the License.
-->

<!--
 | This is the configuration file for Maven. It can be specified at two levels:
 |
 |  1. User Level. This settings.xml file provides configuration for a single user,
 |                 and is normally provided in ${user.home}/.m2/settings.xml.
 |
 |                 NOTE: This location can be overridden with the CLI option:
 |
 |                 -s /path/to/user/settings.xml
 |
 |  2. Global Level. This settings.xml file provides configuration for all Maven
 |                 users on a machine (assuming they're all using the same Maven
 |                 installation). It's normally provided in
 |                 ${maven.home}/conf/settings.xml.
 |
 |                 NOTE: This location can be overridden with the CLI option:
 |
 |                 -gs /path/to/global/settings.xml
 |
 | The sections in this sample file are intended to give you a running start at
 | getting the most out of your Maven installation. Where appropriate, the default
 | values (values used when the setting is not specified) are provided.
 |
 |-->
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
  <!-- localRepository
   | The path to the local repository maven will use to store artifacts.
   |
   | Default: ${user.home}/.m2/repository
  <localRepository>/path/to/local/repo</localRepository>
  -->
<localRepository>D:/maven-XD/repository</localRepository>
  <!-- interactiveMode
   | This will determine whether maven prompts you when it needs input. If set to false,
   | maven will use a sensible default value, perhaps based on some other setting, for
   | the parameter in question.
   |
   | Default: true
  <interactiveMode>true</interactiveMode>
  -->

  <!-- offline
   | Determines whether maven should attempt to connect to the network when executing a build.
   | This will have an effect on artifact downloads, artifact deployment, and others.
   |
   | Default: false
  <offline>false</offline>
  -->

  <!-- pluginGroups
   | This is a list of additional group identifiers that will be searched when resolving plugins by their prefix, i.e.
   | when invoking a command line like "mvn prefix:goal". Maven will automatically add the group identifiers
   | "org.apache.maven.plugins" and "org.codehaus.mojo" if these are not already contained in the list.
   |-->
  <pluginGroups>
    <!-- pluginGroup
     | Specifies a further group identifier to use for plugin lookup.
    <pluginGroup>com.your.plugins</pluginGroup>
    -->
  </pluginGroups>

  <!-- proxies
   | This is a list of proxies which can be used on this machine to connect to the network.
   | Unless otherwise specified (by system property or command-line switch), the first proxy
   | specification in this list marked as active will be used.
   |-->
  <proxies>
    <!-- proxy
     | Specification for one proxy, to be used in connecting to the network.
     |
    <proxy>
      <id>optional</id>
      <active>true</active>
      <protocol>http</protocol>
      <username>proxyuser</username>
      <password>proxypass</password>
      <host>proxy.host.net</host>
      <port>80</port>
      <nonProxyHosts>local.net|some.host.com</nonProxyHosts>
    </proxy>
    -->
  </proxies>

  <!-- servers
   | This is a list of authentication profiles, keyed by the server-id used within the system.
   | Authentication profiles can be used whenever maven must make a connection to a remote server.
   |-->
  <servers>
    <!-- server
     | Specifies the authentication information to use when connecting to a particular server, identified by
     | a unique name within the system (referred to by the 'id' attribute below).
     |
     | NOTE: You should either specify username/password OR privateKey/passphrase, since these pairings are
     |       used together.
     |
    <server>
      <id>deploymentRepo</id>
      <username>repouser</username>
      <password>repopwd</password>
    </server>
    -->
		<server>
			<id>tomcat7</id>
			<username>admin</username>
			<password>admin</password>
		</server>
    <!-- Another sample, using keys to authenticate.
    <server>
      <id>siteServer</id>
      <privateKey>/path/to/private/key</privateKey>
      <passphrase>optional; leave empty if not used.</passphrase>
    </server>
    -->
	    <server>
            <id>nexus-public</id>  
            <username>admin</username>  
            <password>admin123</password>  
        </server>
		<server>
            <id>3rd</id>  
            <username>admin</username>  
            <password>admin123</password>  
        </server>
		<server>
            <id>nexus-releases</id>  
            <username>admin</username>  
            <password>admin123</password>  
        </server>
		<server>
            <id>nexus-snapshots</id>  
            <username>admin</username>  
            <password>admin123</password>  
        </server>
  </servers>

  <!-- mirrors
   | This is a list of mirrors to be used in downloading artifacts from remote repositories.
   |
   | It works like this: a POM may declare a repository to use in resolving certain artifacts.
   | However, this repository may have problems with heavy traffic at times, so people have mirrored
   | it to several places.
   |
   | That repository definition will have a unique id, so we can create a mirror reference for that
   | repository, to be used as an alternate download site. The mirror site will be the preferred
   | server for that repository.
   |-->
  <mirrors>
    <!-- mirror
     | Specifies a repository mirror site to use instead of a given repository. The repository that
     | this mirror serves has an ID that matches the mirrorOf element of this mirror. IDs are used
     | for inheritance and direct lookup purposes, and must be unique across the set of mirrors.
     |
    <mirror>
      <id>mirrorId</id>
      <mirrorOf>repositoryId</mirrorOf>
      <name>Human Readable Name for this Mirror.</name>
      <url>http://my.repository.com/repo/path</url>
    </mirror>
     -->
	  <!--  <mirror>
                        <id>nexus-aliyun</id>
                        <mirrorOf>*,!jeecg,!jeecg-snapshots</mirrorOf>
                        <name>Nexus aliyun</name>
                        <url>http://maven.aliyun.com/nexus/content/groups/public</url>
        </mirror>  -->
	
	 <!--<repository>
        <id>repository.springframework.maven.milestone</id>
        <name>Spring Framework Maven Milestone Repository</name>
        <url>http://repo.spring.io/milestone/</url>
    </repository>-->
	 <mirror>
      <id>nexus-public</id>
      <name>nexus-public</name>
      <url>http://47.97.168.188:8888/nexus/content/groups/public/</url>
      <mirrorOf>*</mirrorOf>        
    </mirror> 
   <mirror>
      <id>alimaven</id>
      <name>aliyun maven</name>
      <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
      <mirrorOf>central</mirrorOf>        
    </mirror> 
	<mirror>
      <id>3rd</id>
      <name>3rd</name>
      <url>http://47.97.168.188:8888/nexus/content/repositories/thirdparty/</url>
      <mirrorOf>*</mirrorOf>        
    </mirror> 
	
	
  </mirrors>

  <!-- profiles
   | This is a list of profiles which can be activated in a variety of ways, and which can modify
   | the build process. Profiles provided in the settings.xml are intended to provide local machine-
   | specific paths and repository locations which allow the build to work in the local environment.
   |
   | For example, if you have an integration testing plugin - like cactus - that needs to know where
   | your Tomcat instance is installed, you can provide a variable here such that the variable is
   | dereferenced during the build process to configure the cactus plugin.
   |
   | As noted above, profiles can be activated in a variety of ways. One way - the activeProfiles
   | section of this document (settings.xml) - will be discussed later. Another way essentially
   | relies on the detection of a system property, either matching a particular value for the property,
   | or merely testing its existence. Profiles can also be activated by JDK version prefix, where a
   | value of '1.4' might activate a profile when the build is executed on a JDK version of '1.4.2_07'.
   | Finally, the list of active profiles can be specified directly from the command line.
   |
   | NOTE: For profiles defined in the settings.xml, you are restricted to specifying only artifact
   |       repositories, plugin repositories, and free-form properties to be used as configuration
   |       variables for plugins in the POM.
   |
   |-->
  <profiles>
  
  
    <!-- profile
     | Specifies a set of introductions to the build process, to be activated using one or more of the
     | mechanisms described above. For inheritance purposes, and to activate profiles via <activatedProfiles/>
     | or the command line, profiles have to have an ID that is unique.
     |
     | An encouraged best practice for profile identification is to use a consistent naming convention
     | for profiles, such as 'env-dev', 'env-test', 'env-production', 'user-jdcasey', 'user-brett', etc.
     | This will make it more intuitive to understand what the set of introduced profiles is attempting
     | to accomplish, particularly when you only have a list of profile id's for debug.
     |
     | This profile example uses the JDK version to trigger activation, and provides a JDK-specific repo.
    <profile>
      <id>jdk-1.4</id>

      <activation>
        <jdk>1.4</jdk>
      </activation>

      <repositories>
        <repository>
          <id>jdk14</id>
          <name>Repository for JDK 1.4 builds</name>
          <url>http://www.myhost.com/maven/jdk14</url>
          <layout>default</layout>
          <snapshotPolicy>always</snapshotPolicy>
        </repository>
      </repositories>
    </profile>
    -->

    <!--
     | Here is another profile, activated by the system property 'target-env' with a value of 'dev',
     | which provides a specific path to the Tomcat instance. To use this, your plugin configuration
     | might hypothetically look like:
     |
     | ...
     | <plugin>
     |   <groupId>org.myco.myplugins</groupId>
     |   <artifactId>myplugin</artifactId>
     |
     |   <configuration>
     |     <tomcatLocation>${tomcatPath}</tomcatLocation>
     |   </configuration>
     | </plugin>
     | ...
     |
     | NOTE: If you just wanted to inject this configuration whenever someone set 'target-env' to
     |       anything, you could just leave off the <value/> inside the activation-property.
     |
    <profile>
      <id>env-dev</id>

      <activation>
        <property>
          <name>target-env</name>
          <value>dev</value>
        </property>
      </activation>

      <properties>
        <tomcatPath>/path/to/tomcat/instance</tomcatPath>
      </properties>
    </profile>
    -->
  </profiles>
  

  <!-- activeProfiles
   | List of profiles that are active for all builds.
   |
  <activeProfiles>
    <activeProfile>alwaysActiveProfile</activeProfile>
    <activeProfile>anotherAlwaysActiveProfile</activeProfile>
  </activeProfiles>
  -->
</settings>

Added by lokesh_kumar_s on Sun, 23 Jan 2022 00:49:56 +0200