Normal Key | Value1 |
BoldKey | Bla bla 1 |
1 Footnote content here. ↩
#Kafka - Messaging Basics This assumes you are starting fresh and have no existing Kafka or ZooKeeper data. See http://kafka.apache.org/documentation.html#quickstart for more details.
##Install Java
sudo apt-get install python-software-properties
sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
sudo apt-get install oracle-java8-installer
Ideally, each service should have only a small set of responsibilities. Robert 'Uncle Bob' Martin talks about designing classes using the Single Responsibility Principle (SRP). The SRP defines a responsibility of a class as a reason to change, and states that a class should only have one reason to change. It make sense to apply the SRP to service design as well.
Another analogy that helps with service design is the design of Unix utilities. Unix provides a large number of utilities such as grep, cat and find. Each utility does exactly one thing, often exceptionally well, and can be combined with other utilities using a shell script to perform complex tasks.
Adrian Cockcroft (former Netflix Cloud Architect, current Amazon VP of Cloud Architecture) says that a microservice is something that one developer should be able to write/re-write from scratch in two to three weeks.
Helpful patterns for designing microservices:
Comparison of Spring Cloud with Eureka
I feel Consul.io does better in the following area:
The focus on scriptable configuration allows for better container management.
Eureka requires either external Configuration Server or multiple configuration files.
The options for securing communications is more advanced.
Eureka requires creating application with security settings desired. Default will allow HTTP only. Registration of end points assumes http but can be forced to https with code.
Image above from April 20
(Also, more thoughts are here )
In working out my thoughts, this is borrowing from several sources, notably:
This is an example of making fluentd count log messages and emit to graphite.
Run in a terminal:
# start graphite statsd
docker run -d --name graphite --restart=always -p 80:80 -p 2003-2004:2003-2004 -p 2023-2024:2023-2024 -p 8125:8125/udp -p 8126:8126 hopsoft/graphite-statsd
# start fluentd container
./build.sh
This is intended to be executed like this: | |
./build.sh & | |
docker run --log-driver=fluentd --log-opt tag="docker.{{.ID}}" --log-opt fluentd-address="$(docker inspect -f '{{.NetworkSettings.IPAddress}}' custom-docker-fluent-logger):24224" python:alpine echo Hello |
Bootstrap_vs_Foundation_Google.png
This is just a picture of this link from April 13, 2017
This is just a picture of this link from April 13, 2017