Skip to content
Microservices based project to extract the information from the user data from different sources.
Java Groovy
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
kraker-info-auth-server
kraker-info-bookmark-svc
kraker-info-cms
kraker-info-config
kraker-info-configuration
kraker-info-docs Added example to deserialize enums in model. Oct 26, 2017
kraker-info-eureka
kraker-info-gateway
kraker-info-hystrix-dashboard Updated bookmarkSvc to have hystrix dashboard Jul 2, 2018
kraker-info-user-svc Updated README and added exception handling around redis connection Nov 15, 2018
kraker-info-zipkin Updated properties files with correct eureka endpoints Jul 1, 2018
.gitignore Polishing Oct 9, 2017
.travis.yml
README.md Updated README and added exception handling around redis connection Nov 15, 2018
checkstyle.xml
pom.xml

README.md

Kraker-Info

Start each of the modules starting with kraker-info-eureka which is registry for all the services.

Architectural Diagram

Arch Diagram

Test Endpoint

http://localhost:9093/users/yogen

Flow would be like this:

Client -> kraker-info-gateway -> kraker-info-user-svc -> kraker-info-bookmark-svc

Tracing component interaction

Start kraker-info-zipkin modules and tracing information will be at endpoint:

http://localhost:9411/zipkin/

Externalization of properties:

  1. Create a .yml file in kraker-info-config directory with application name. For example: kraker-info-config/kraker-info-user-svc.yml

  2. Update corresponding component using that property with @RefreshScope annotation which indicates that the property value injected needs to be fetched for new request. For example:

@RefreshScope
@RestController
public class UserController {
    @Value("${env.current:local}")
    private String currentEnv;
    
    //...
}
  1. Once you change the value at .yml file, make POST request to the endpoint
http://localhost:${port}/refresh

to make sure those values are refreshed for the context.

Setup Redis server

Redis is being used for caching with client Jedis.

For Mac, install Redis with brew as
brew install redis

Start Redis-server with:

brew services start redis

If you do not want to start with brew, then you can start Redis server as:

redis-server /usr/local/etc/redis.conf

Check if redis is running:

redis-cli ping

Stop Redis-server:

brew services stop redis
For windows

Download and start server to enable caching.

Swagger UI

All endpoints are exposed via gateway service. So, swagger-ui for endpoints is at:

http://localhost:9093/swagger-ui.html
You can’t perform that action at this time.